diff --git a/version2.0/test.nas b/version2.0/test.nas new file mode 100644 index 0000000..a192f3f --- /dev/null +++ b/version2.0/test.nas @@ -0,0 +1,69 @@ +# normal scalar +var number_1=1; +var number_2=0xdeadbeef; +var number_3=0x13702; +var number_4=0.12341490239423; +var string_1="hello"; +var string_2='hello'; + +# vector +var vector_1=[]; +var vector_2=[0,1,2,"str",number_1,vector_1]; +var vector_3=vector_2[-3,-1]; +var vector_4=vector_2[0:3]; +var vector_5=vector_2[3:]; + +# hash +var hash_1={}; +var hash_2={str1:'str1', str2:'str2', num1:0x7fffffff}; +var hash_3={ + "member_1":1, + "member_2":2, + "member_3":3, +}; +var hash_4={ + mem_1:hash_1, + mem_2:hash_2.num1,# also this can be written as hash_2["num1"] + mem_3:hash_3["member_1"] +}; + +# function +var func_1=func(){return 1;} +var prt=func(x){print(x);return nil;} +var func_with_dynamic_id=func(a,b,c,d...){return [a,b,c,d];} +var func_with_lack_para=func(a,b,c=1,d=2){return a+b+c+d;} +var func_with_func_para=func(a,f){return f(a);} + +func_with_lack_para(a:1, b:2, c:3, d:4); +func_with_lack_para(b:1, c:3, a:4, d:1); +func_with_func_para(func func_1(),func(x){return x;}); +func_with_func_para(func_1(),func_1); +prt(func func_1()); +var test_func_ret_number_1=func func_1();# 1 +var test_func_ret_number_2=func_1(); # 1 + +var source={ + member_1: func func_1(), # this will get a number + member_2: func {return 2.71828;} # this will get a function +}; +print(source['member_2']()); +print(source.member_2()); + +var test_func=func{return 1;} +print(func test_func());# 1 +print(test_func()); # 1 +print(func test_func); # nothing +print(test_func); # nothing + +# lambda +(func(x){return x>0? x:0;})(12); +(func{print("hello world");})(); + +# flexible definition & assignment +var (r,g,b)=[0x00,0x10,0xff]; +(var r,g,b)=[0x00,0x10,0xff]; +var color=[0x00,0x10,0xff]; +var (r,g,b)=color; +(var r,g,b)=color; +(r,g,b)=(b,g,r); +(number_1,number_2)=(number_2,number_1); \ No newline at end of file