Z^3 Language Documentation
Jump to navigation
Jump to search
Operators
@: Function Apply Operator
1..100@SIN
~: Transpose Operator
[[[1..10]~]~]~
↑ and ↓: Ascending and Descending Operator
MAGICSQUARE(5)! (1..100)↓ (1..100)↑
⧓,⧒,⧒ and ⋈: Between Operators
a=-1; ⧓(1,a,30) a=29; ⧓(1,a,30) //between g a=31; ⧒(1,a,30) //xlbetween g a=30; ⧒(1,a,30) //xlbetween g ⧒(1,2,30) // xlb g ⧒(1,1,30) a=29; ⋈(1,-1..31,30); ⧓(1,-1..5,4); [ ⧓(1,1,30), ⧓(1,0,30), ⧓(1,10,30), ⧓(1,31,30), ⧑(1,29,30), ⧑(1,30,30), ⧑(1,1,30), ⧑(1,30,30), ⋈(1,1,30), ⋈(1,3,30) ]
√: Square Root, Cube Root, Fourth Root and Nth Root Operators
√(3+34) ∛(27.01) √√64 ROOTNTH(1..10,4) // root is first parameter NTHROOT(1..10,4) // root is second parameter NTHROOT(1..100,2) NTHROOT(1..100,4) ROOTNTH(1..100,2) ROOTNTH(1..100,4) 3√81
Logical Statements
If Statements
a=3;
(a<0)::{"whatever"},
{
!(a>4)::
{"whateverelse"},
{"whateverelseleft"}
}
(a>4)::
{"whateverelse"},
{"whateverelseleft"}
Switch Statements
Apart from the conventional Javascript switch statement syntax, z^3 enhances language simplicity with a new style.
The new z^3 switch statements syntax is as follows.
discriminant:::
{
x, y::
/*statements to be executed if x or y is true*/
/*Break is automatically added. */
/*Simply add an empty statement using a simple extra semicolon (;)) */
,
z::
/*statements to be executed if z is true*/
,
default::
}
For example,
b=0;
c=343;
fruits="mango";
fruits:::
{
"apple","tomato"::
b++;
c=3.4;
,
"mango"::
b=34905;
,
default::
b=45.6;
}
[b,c];
switch(a)
{
case b:
case c:
break;
default:
break;
}
Loops
a=1;
do
{
a++
}
until(a>20); // do while(!condition)
a; // here this will be 21, since !condition is checked like a do while loop.
a=11;
b=45;
because(a<b)
{
a++
OUTPUT(a)
}
a=11;
do
{
a++
}
unless(a==11);
a;
Function Declarations
function y(x)
{
∵(x<345)
{
∴(x+3434)
}
∵(x>345)
{
∴(x-3434)
}
}
y(13);
The letter Ƒ can also be used instead of the full term function.
Ƒ y(x)
{
∵(x<345)
{
∴(x+3434)
}
∵(x>345)
{
∴(x-3434)
}
}
y(13);
Existential Quantification
a=1..100;
∀a("x<810")
∃a("x<810")
∄a("x<810")
a=1..100;
[∀a("x<810"),∃a("x<810"),∄a("x<810")]
a=1..100;
[∀a("x<810"),∃a("x<810"),(!∄a("x<0"))]
a=1..100;
b= ∀a("y*2<200");
b.result
a=1..100;
b= ∀a("y*2<=50");
a.pick(b.result)
//make a pick operator based on a similar array of true false. or non-existant to get the values out.
//PICK
a=1..100;
b= ∀a("y*2<50");
a.pick(b.result)
List of Operators
+, -, *, /, ^, % - Arithmetic Operators
| | - Array Function and Creation Operator
.. - Arithmetic and Geometric Series Creation
... - Arithmetic and Geometric Series Creation
@ - apply to
# - Series or Special Case Qualifier for Dates, Calci Cells, and Sequences, etc.
<<< - Member or Variable Assignment
() - Function Call
[] - Set Creation
- Object Set
- Set Object Membership
. - Member Function Dereferencing.
. mf - Member Function
.$ mf(function, parameters) - Element-wise Function Application
.$$ mf (special – Row-wise Function Application
.$$$ mf (special) – Column-wise Function Application
.$_ mf (special) - Cumulative Function Application (all)
:: - If
::: - switch
Short Cut Keys
CTRL+G - to convert into Greek Code CTRL+U - Converts SIGMA to Σ SHIFT+SPACE - Gives Parameter Expansion SHIFT+BACKSPACE - Toggle Capital and Small Letter [Ex: Convert FRACTAL to fractal and vice verse]