Diff
Not logged in

Differences From Artifact [b35cfd66e862f7bf]:

To Artifact [f80a12af3228ea33]:


1 1 @@type = fun(x){ 2 - if( _isint(x) ) { "int" } 3 - else { if( _isstr(x) ) { "str" } 4 - else { if( _isundefined(x) ) { "undefined" } 5 - else { "any" }}} 2 + if _isint(x): "int" 3 + else if _isstr(x): "str" 4 + else if _isundefined(x): "undefined" 5 + else: "any" 6 6 }; 7 7 8 8 def binop(a,b,c) { 9 9 fun(x,y){@value( 10 - if( @type(x)=="undefined" || @type(y)=="undefined" ) { "undefined" } else { 11 - if( @type(x)==a && @type(y)==b ) { c } else { "error" } 12 - } 10 + if( @type(x)=="undefined" || @type(y)=="undefined" ) then "undefined" else 11 + if( @type(x)==a && @type(y)==b ) then c else "error" 13 12 )} 14 13 }; 15 14 16 15 @type "+" = binop("int", "int", "int"); 17 16 @type "-" = binop("int", "int", "int"); 18 17 @type "<" = binop("int", "int", "int"); 19 18 @type ">" = binop("int", "int", "int"); 20 19 21 20 def mergeType(a,b) { 22 - if( a == "undefined" ) { if(b=="undefined"){"error"}else{b} } else { a } 21 + if( a == "undefined" ): ( if(b=="undefined"):"error" else b ) else ( a ) 23 22 }; 24 23 25 24 @type "if" = fun(c,t,e) {@value( 26 - if(@type(c)=="int" ) { mergeType(@type(t()), @type(e())) } else { "error" } 25 + if(@type(c)=="int" ): mergeType(@type(t()), @type(e())) else : "error" 27 26 )};