Artifact Content
Not logged in

Artifact 7e23af883e94d99022443b551157e24afa3375ba


     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  #			{is:"App", fun:f, args:reverse(a, {})}
    15  		)
    16  		when _ :
    17  		(
    18  			ev
    19  		)
    20  )};
    21  
    22  def main()
    23  {
    24  	print( reverseArgs(1 + 2) );
    25  	print( reverseArgs(1 - 2) );
    26  };
    27  
    28  main()