Artifact a9061a338889d74caa747b94859b38768ae362a8
- File
sample/ast.pmy
- 2010-11-24 11:45:25 - part of checkin [adacc96a55] on branch trunk - changed the syntax of pattern matching (user: kinaba) [annotate]
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()