Artifact Content
Not logged in

Artifact 157799e01f30b7fa349a8a515d2151b54b7643c1


     1  def reverse(lst, acc)
     2  {
     3  	case(lst)
     4  		when( {car:a, cdr: d} ) { reverse(d, {car:a, cdr:acc}) }
     5  		when( {} ) { acc }
     6  };
     7  
     8  @macro reverseArgs(e) {@value(
     9  	var ev = @macro(e);
    10  	case(ev)
    11  		when( {is:"App", fun:f, args:a} )
    12  		{
    13  			ev {args: reverse(a, {})}
    14  		}
    15  		when( _ ) 
    16  		{
    17  			ev
    18  		}
    19  )};
    20  
    21  def main()
    22  {
    23  	print( reverseArgs(1 + 2) );
    24  	print( reverseArgs(1 - 2) );
    25  };
    26  
    27  main()