Artifact 94485181e809cc7b0fcf748b3ee57855399df9a0:
0000: 64 65 66 20 72 65 76 65 72 73 65 28 6c 73 74 2c def reverse(lst,
0010: 20 61 63 63 29 0a 7b 0a 09 63 61 73 65 28 6c 73 acc).{..case(ls
0020: 74 29 0a 09 09 77 68 65 6e 28 20 7b 63 61 72 3a t)...when( {car:
0030: 61 2c 20 63 64 72 3a 20 64 7d 20 29 20 7b 20 72 a, cdr: d} ) { r
0040: 65 76 65 72 73 65 28 64 2c 20 7b 63 61 72 3a 61 everse(d, {car:a
0050: 2c 20 63 64 72 3a 61 63 63 7d 29 20 7d 0a 09 09 , cdr:acc}) }...
0060: 77 68 65 6e 28 20 7b 7d 20 29 20 7b 20 61 63 63 when( {} ) { acc
0070: 20 7d 0a 7d 3b 0a 0a 40 6d 61 63 72 6f 20 72 65 }.};..@macro re
0080: 76 65 72 73 65 41 72 67 73 28 65 29 20 7b 40 76 verseArgs(e) {@v
0090: 61 6c 75 65 28 0a 09 76 61 72 20 65 76 20 3d 20 alue(..var ev =
00a0: 40 6d 61 63 72 6f 28 65 29 3b 0a 09 63 61 73 65 @macro(e);..case
00b0: 28 65 76 29 0a 09 09 77 68 65 6e 28 20 7b 69 73 (ev)...when( {is
00c0: 3a 22 61 70 70 22 2c 20 66 75 6e 3a 66 2c 20 61 :"app", fun:f, a
00d0: 72 67 73 3a 61 7d 20 29 0a 09 09 7b 0a 09 09 09 rgs:a} )...{....
00e0: 65 76 20 7b 61 72 67 73 3a 20 72 65 76 65 72 73 ev {args: revers
00f0: 65 28 61 2c 20 7b 7d 29 7d 0a 09 09 7d 0a 09 09 e(a, {})}...}...
0100: 77 68 65 6e 28 20 5f 20 29 20 0a 09 09 7b 0a 09 when( _ ) ...{..
0110: 09 09 65 76 0a 09 09 7d 0a 29 7d 3b 0a 0a 64 65 ..ev...}.)};..de
0120: 66 20 6d 61 69 6e 28 29 0a 7b 0a 09 70 72 69 6e f main().{..prin
0130: 74 28 20 72 65 76 65 72 73 65 41 72 67 73 28 31 t( reverseArgs(1
0140: 20 2b 20 32 29 20 29 3b 0a 09 70 72 69 6e 74 28 + 2) );..print(
0150: 20 72 65 76 65 72 73 65 41 72 67 73 28 31 20 2d reverseArgs(1 -
0160: 20 32 29 20 29 3b 0a 7d 3b 0a 0a 6d 61 69 6e 28 2) );.};..main(
0170: 29 )