Artifact Content
Not logged in

Artifact a9061a338889d74caa747b94859b38768ae362a8


     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()