Difference between revisions of "Z3 Language Tests"
m |
|||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | Following are test cases to try out in ZCubes. Please note that the examples follow z^3 Language. Apart from being simple, z^3 language also give you full programming capability of Javascript and more, as | + | Following are test cases to try out in ZCubes. Please note that the examples follow z^3 Language. Apart from being simple, z^3 language also give you full programming capability of Javascript and more, as the language enhances and converts to Javascript internally. z^3 runs within browsers, desktops, servers, web-servers, etc., and provides a full scale experience to the users, in all modes, operating systems and platforms of computing. |
Line 80: | Line 80: | ||
*[[ Z%5E3_Language_Documentation | See Also - Z3 Language Documentation ]] | *[[ Z%5E3_Language_Documentation | See Also - Z3 Language Documentation ]] | ||
+ | |||
+ | =Regular Expressions= | ||
+ | |||
+ | a=["cat","dog","rat"]; | ||
+ | |||
+ | a.filter( | ||
+ | |||
+ | x=>x.match(/(o|t)/) | ||
+ | |||
+ | ) | ||
+ | |||
+ | Output: cat dog rat | ||
+ | |||
+ | |||
+ | |||
+ | a=["cat","dog","rat","rat1"]; | ||
+ | |||
+ | a.map( | ||
+ | |||
+ | x=>x.match(/[0-9]/) | ||
+ | |||
+ | ) | ||
+ | |||
+ | Output: null null null 1 | ||
+ | |||
+ | |||
+ | |||
+ | a=["cat","dog","r2iat","rat1"]; | ||
+ | |||
+ | a.filter( | ||
+ | |||
+ | x=>x.match(/[hc]?at/) | ||
+ | |||
+ | ) | ||
+ | |||
+ | Output: cat r2iat rat1 | ||
+ | |||
+ | |||
+ | |||
+ | a=13; | ||
+ | |||
+ | b=34; | ||
+ | |||
+ | a..b | ||
+ | |||
+ | Output: 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | ||
+ | |||
+ | |||
+ | |||
+ | 5√(1..34) | ||
+ | |||
+ | |||
+ | (2..5)√(10..34) | ||
+ | |||
+ | |||
+ | |||
+ | a=45m; | ||
+ | |||
+ | c=56cm; | ||
+ | |||
+ | a<+>c | ||
+ | |||
+ | Output: 4556cm | ||
+ | |||
=Combinatorial Arguments and Implicit Looping= | =Combinatorial Arguments and Implicit Looping= | ||
Line 880: | Line 944: | ||
function x1(x){return(x+34)};x1(304) | function x1(x){return(x+34)};x1(304) | ||
− | + | ||
Latest revision as of 04:57, 4 January 2022
Following are test cases to try out in ZCubes. Please note that the examples follow z^3 Language. Apart from being simple, z^3 language also give you full programming capability of Javascript and more, as the language enhances and converts to Javascript internally. z^3 runs within browsers, desktops, servers, web-servers, etc., and provides a full scale experience to the users, in all modes, operating systems and platforms of computing.
Simple Matrix Creation
a=[1 2; 3]
a=[[1,2],[3]]
a=[1 2; 3 4]
a=[1 20; 2 3]
a=[[1, 20],[2, 3]]
a=[[1, 20],[2, [3 4]]];
a=[[1, 20],[2, [3; 4]]];
a=[[1, 20],[2, [3; 4;]]]; // worked with after 4 nothing was taken. Is that something to change later? with a null?
a=[1 20; 2;[3,4]; 3]
a=[1, (a+b); 2;[3,4]; 3]
a=[1*(a+b); 2;[3,4]; 3]
a=[1*(a+b); 2;[3,4+34]; 3];
Matrix Operators
|a|;
|10|;
a=|44|
b=34
Object Initialization
a=[3,4,2..20]
a={"car":a}
Creating Multi-Dimensional Matrices of Required Sizes
a=|4x3x3|
Matrix Operators
a=|3||*||4| //doesn't work
a=|5x5|
a=|5|
|10x3|
a=a|x+3|b;
a=|5||+||5|
a=|5||\||5| //for INTDIV
a=|5||/\||5| //for DIVPARTS
a=|5||%||5| //for MATRIXMOD
a=|3||CHIDIST||4| // should we make this CHIDIST with MOP? Could decide later for MATRIXOPS
1..100@"x^2"
Regular Expressions
a=["cat","dog","rat"];
a.filter(
x=>x.match(/(o|t)/)
)
Output: cat dog rat
a=["cat","dog","rat","rat1"];
a.map(
x=>x.match(/[0-9]/)
)
Output: null null null 1
a=["cat","dog","r2iat","rat1"];
a.filter(
x=>x.match(/[hc]?at/)
)
Output: cat r2iat rat1
a=13;
b=34;
a..b
Output: 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
5√(1..34)
(2..5)√(10..34)
a=45m;
c=56cm;
a<+>c
Output: 4556cm
Combinatorial Arguments and Implicit Looping
CHIDIST(1..100,2..3) .graph(1,0)
[Other]
[1..2,1..4,1..20]@"x^3+y^2+z^3"
FOR 20..30 "det(MAGICSQUARE(x))";
a=FOR 1..100 SIN;
a= FOR 20..30 "det(MAGICSQUARE(x))";
var a=FOR 20..30 "det(MAGICSQUARE(x))";
var a=FOR 20..30 "det(MAGICSQUARE(x))",b=FOR 1..100 COS;
radpiby3
a=SIN(radpiby3)
1..100.fillwith(1..10)
(1..100).fillwith(1..10)
(1..100..10).fillwith(1..10)
1..100.fillwith(10..100).$(CIRCLE)
1..100 .fillwith(10..100).$(CIRCLE)
1..100..130.fillwith(10..100).$(CIRCLE)
SIN@1..100@COS
SIN@1..100
1..100@COS
1..100..10@COS
1..100..10.fillwith(10..100).$(CIRCLE)
1..100.23..1023.1 .fillwith(10..1020).$(CIRCLE)
1..100..10.fillwith(1..10)
FOR 20..30 "det(MAGICSQUARE(x))";
FOR 20..30 "det(MAGICSQUARE(x))";
FOR 20..30 "det(MAGICSQUARE(x))";
1...100.0343..103.fillwith(1..10)
a=[1 (a+b); 2;[3,4]; 3]
Javascript Code & Z3
function z() { if(a<3) { return(false); } }
function () { if(a<3) { return(false) } }
A=(|3x4|@4.3)@SIN
|4|.$i([SUM,SIN,COS]);
|4|.$i(SUM,SIN,COS)
[["cats1","dogs1"],"birds"]<<<[[2,[COS]],[SIN]]
[["cats1","dogs1"],"birds"]<<<<[[2,[COS]],[SIN]]
[["cats1","dogs1"],"birds"]>>>>[[2,[COS]],[SIN]]
Series Comprehension
[#a-z,#A-Z,1..10,4..500]
a=#a-z
a=#1/1/16
var a=#;
b=#;
c=#;
d=#;
PMT(#1/1/2011,#2/2012) // did not work
var a=#a-x;
b=#1/1/2011;
a = a < 34 ? 3
Range Referencing
#TABLE3!A3:E6
a=#TABLE3!A3:E6
a=#A3:E6
a=SIN(#D8:E11,#H11:K12)
#TABLE3!A3:E6
a=#TABLE3!A3:E6
a=#A3:E6
#D8:E11
#TABLE3!A3:E6
[1,2,undefined,#].$(SIN)
a=[#1/1/2011,#2/2/2015]
[1,2,undefined].$(SIN)
[1,2,undefined,#].$(SIN)
v:=u+a*t
E=m*c^2;
Simple, Beautiful Notations
a=5!;
b=5%;
a=(a+x)!;
a=(a+x)*!34;
a=(5!)!
a=5!! will not work.
a=34!P!3
a=34!C!3
a=34!P!3!C!3
var a=2;
v:=u+a*t;
var b=3;
var a=2;
var v:=u+a*t;
var b=3;
var a=2;
var v:=u+a*t;
var b=3;
var a=2;
var v:=u+a*t,d=34;
var b=3;
var a=#a-x,d=#1/1/2011;
# means undefined by itself.
ad := a+b
1..3**3.$d (SIN)
(1..3**3).$d (SIN)
PRODUCT(n..1..-3)
a=#,b=#,c=#
FACTTRIPLE=PRODUCT(n..1..-3)
FACTTRIPLE:=PRODUCT(n..1..-3)
Conditional Matrix Projection
1..10|x<4|
1..10|x?x<4|
1..10|x?x<4:u|
1..10|x?x<4:u|1..10
1..10|x?u+x<4:u|1..10
|4||x?x<4:false||34| ;
|4||x?x<4||34|;
|4||x?x<4||34| ;
|4||x?x<4:34+y+z||34|;
|4||x?x<4|;
|4||x<4|;
|1||x<4||x>10|
1..10|x<4&&y>9|2..20
a=3!
a=100..|x+y|3
..100
10..
1..10|x<4|
1..10|x<4|34
1..10|x^3&&x^3<3000?x|w
0..10@"SIN(x^2,1..10)" .graph()
0..10@("SIN(x^2,1..10)" .graph())
0..10@"SIN(x^2,1..23..10)".graph(30).sin()
0..10@"SIN(x^2,1..23..10)".graph(30).sin()
1..1000..100@["x^2",COS] .graph()
0..10@"SIN(x^2,1..10)" .graph()
0..10@("SIN(x^2,1..10)" .graph())
0..10@"SIN(x^2,1..23..10)".graph(30).sin()
0..10@"SIN(x^2,1..23..10)".graph(30).sin()
0..10@"SIN(x^2,1..10)" .graph()
SIN(x^2,1..10)
1..3**3.$d (SIN)
(1..3**3).$d (SIN)
(1..1000..100@["x^2",COS] .$(SIN)) @SIN
0..10@"SIN(x^2)" .graph()
0..10@"SIN(x^2)".graph()
1..10|x<4|34
1..10|(x?x<4)|
var a=FOR 20..30 "det(MAGICSQUARE(x))", b=FOR 1..100 COS;
a=[1*(a+b); 2;[3,4+34]; 3]
|a| |10|
a=[1*(a+b); 2;[3,4+34]; 3]; |a|; |10|
PMT(4%, 12, 100000)
a=FOR(PMT, 100000,41% ,1..12)
pmt12:=PMT(x,y,12);
PMT(1000,26%)
vary...
Program Code in Any Language
Θ=3+x;
Θ(34)
അത:=34+അതx;
അത(4)
Z3 and JS
The can be intermixed, and it works beautifully. There are very few things you need to think about mixing syntax.
/*Enter Code Here in Z3/Javascript...*/
var a=10;
for(var b=1;b<a;b++)
{
console.log(b)
}
/*Enter Code Here in Z3/Javascript...*/
function test()
{
var a=25;
c=[]
for(var b=1;b<a;b++)
{
c.push(b)
}
return(c);
}
test()
More Commands and Programs to try
test:=x!;
test(3);
// NEW
1..67..4@[SIN,COS] .graphin()
1..(160%19)@SIN
a=radpiby3;
c=a@SIN;
c.graphin()
//check
deg222by3
rad2piby3
a=radpiby3 |*| 2
rad2piby3
radpiby3 |*| 2
a=radpiby3 |*| 3
//http://www.tribology-abc.com/calculators/default.htm //drag-drop calculate.
LOAD("loans")
LOAN(10000,12%,12)
LOAN(10000,12%3, 0)
LOAD("loans")
LOAN(10000,12%,12).PAYMENTS()
LOAD("countries")
COUNTRY(3..23)
LOAD("elements")
ELEMENT(3..23)
THINK "Jaipur"
|10|.fillwith(10..1000) |*| 20
|4|.fillwith(34..200..3).$("2*x^3")
a=radpiby4 |*| 28
a=|5||++||6|
CAL(6..11,2012)
["sunny"]<<<1..10
SIN(sunny)
morethanthree:=u>3
1..10@morethanthree
1..10|++|2..20
mary=[SIN,COS,TAN]
1..10@mary
["divya"]<<<["SIN(x)+COS(x)+x^2"]
1..10@divya
["sunny","sneha"]<<<[[1..100],[500..1000]]
sunny
sneha
c=1..35@SIN .graphin()
d=1..100;
[49,31,#].$(z^2)
vs.
[49,31,#].$("z^2")
a=#TABLE1!B1:B1*46
a=#TABLE1!B1*46 // has issues.
a=#TABLE1!B1:B1*462
a=#TABLE1!B1*462
a=(#1/1/2012-2/1/2012).length
|4|.fillwith(34..200..3).$("2*x^3")
a=2..9|*|TRANSPOSE(2..9)
(2..3)~ for transpose.
a=2..9|*|(2..9)~; //for transpose.
((2..3)~)*34
(2..3)*~34
//~ for transpose.
a=|3|
a~;
a=(#TABLE1!B1)~*46
/* Showing intermediate output */
a=1..100;
OUTPUT(a);
a=1..25;
OUTPUT(a);
b=SUM(a);
[a,b]
Obi:=z^3;
d=FOR Obi 1..431;
SUM(d)
c8:=u+a*t
c8
SETVALUE(#TABLE1!B2:D5,1100);
// sets into calci such values. TABLE1 needs to be opened through 'New-->Calci'
SETVALUE(#TABLE1!B2:D5,1..100);
1..1100.chunks(3) did not parse.
SETVALUE(#TABLE1!B2:D5,54..100.chunks(2));
SETVALUE(#TABLE1!B2:D5,54..100.chunks(2)~);
1..100.fillwith(1..10)
1..1100.chunks(3)
2Space!zcontrol2
FOR "SUM(1..x)" 1...1000000000...100
b=|4|
b.fillwith(1..123);
SIN(1..34)
a=1..20;
a.fillwith(2..3);
d=13;
SUM(d..10..-1)
b=1..100;
function Jay(x)
{
return(x+34)
}
1..100@Jay
a:=π*r^2;
a=|3|;
α:=π*r^2;
α(39);
Σ(1..100);
r=1..100@"π*r^2";
θ=1..5;
SIN(θ);
ctrl+g type greek name or unicode code and select and press ctrl+g to get the conversion into code. ctrl+u for uppercase greek etc. ctrl+space for hints.
sigma select ctrl+u gets Σ and then Σ(1..100).
മോോ=1..100;
ഐങ=2|*|മോോ
a="🍏🍎";
function x(n){return(REPEATCHAR(a,n))}
1..100@x
success="🍤";
1..100.map(()=>success);
ഒട്ടക൦=34;
ഒട്ടക൦=44+ഒട്ടക൦;
Yurttas:=SIN(c..30)
Yurttas(28)
(1..1000..100@["x^2",COS] .$(SIN))@SIN
fx:=SERIESSTR("x*3*_x+",1..x).join("")
1..10@fx
a=|3|;
(a).rotate(45)
function das(x)
{
var adi=3;
return(adi+x)
}
das(4);
function fact(x)
{
return(x<1?1:fact(x-1)*x)
}
fact(19)
তণ=0;
FOR 1..(তণ+4) SIN;
v:=u+a*t;
ARRAYFY(v);
v(1..10,2..3,10..12);
//think of why this is not accurate.
// the matrix comes in incorrectly.
// Seems like it needs v:=u+a[0][0]*t;
v:=u[0]+a*t;
ARRAYFY(v,[0]);
v(1..10,2..3,10..12);
BOTTOMN([[1,2],[3,4],[4,5]],1..2)
TOPN([[1,2],[3,4],[4,5]],1..2)
VLOOKUP(5, [1..10]~, 1,TRUE)
// note ! is required to make it into a 2-D array. Any other tricks we could suggest?
VLOOKUP(21..26,|5|.fillwith(11..50), 1..5,FALSE)
(1..10~)
(1..10)~ // this makes a 2D array to be more accurate.
(1..10)
VLOOKUP(21..26,|5|.fillwith(11..50), 1..5,FALSE)
function x1(x){return(x+34)};x1(304)
todo
a=|4 2 3|
// had issue with VariableExpression.
// when do we var nowmark=Z3SetBookmark(); // when do we unset this?
SELECT * FROM A
Free Form Calci - Test from forms like:
http://www.tribology-abc.com/calculators/default.htm