Artifact 7e23af883e94d99022443b551157e24afa3375ba:
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 20 7b 63 61 72 3a 61 t)...when {car:a
0030: 2c 20 63 64 72 3a 20 64 7d 3a 20 20 72 65 76 65 , cdr: d}: reve
0040: 72 73 65 28 64 2c 20 7b 63 61 72 3a 61 2c 20 63 rse(d, {car:a, c
0050: 64 72 3a 61 63 63 7d 29 0a 09 09 77 68 65 6e 20 dr:acc})...when
0060: 7b 7d 3a 20 20 20 61 63 63 0a 7d 3b 0a 0a 40 6d {}: acc.};..@m
0070: 61 63 72 6f 20 72 65 76 65 72 73 65 41 72 67 73 acro reverseArgs
0080: 28 65 29 20 7b 40 76 61 6c 75 65 28 0a 09 76 61 (e) {@value(..va
0090: 72 20 65 76 20 3d 20 40 6d 61 63 72 6f 28 65 29 r ev = @macro(e)
00a0: 3b 0a 09 63 61 73 65 28 65 76 29 0a 09 09 77 68 ;..case(ev)...wh
00b0: 65 6e 20 7b 69 73 3a 22 41 70 70 22 2c 20 66 75 en {is:"App", fu
00c0: 6e 3a 66 2c 20 61 72 67 73 3a 61 7d 3a 0a 09 09 n:f, args:a}:...
00d0: 28 0a 09 09 09 65 76 20 7b 61 72 67 73 3a 20 72 (....ev {args: r
00e0: 65 76 65 72 73 65 28 61 2c 20 7b 7d 29 7d 0a 23 everse(a, {})}.#
00f0: 09 09 09 7b 69 73 3a 22 41 70 70 22 2c 20 66 75 ...{is:"App", fu
0100: 6e 3a 66 2c 20 61 72 67 73 3a 72 65 76 65 72 73 n:f, args:revers
0110: 65 28 61 2c 20 7b 7d 29 7d 0a 09 09 29 0a 09 09 e(a, {})}...)...
0120: 77 68 65 6e 20 5f 20 3a 0a 09 09 28 0a 09 09 09 when _ :...(....
0130: 65 76 0a 09 09 29 0a 29 7d 3b 0a 0a 64 65 66 20 ev...).)};..def
0140: 6d 61 69 6e 28 29 0a 7b 0a 09 70 72 69 6e 74 28 main().{..print(
0150: 20 72 65 76 65 72 73 65 41 72 67 73 28 31 20 2b reverseArgs(1 +
0160: 20 32 29 20 29 3b 0a 09 70 72 69 6e 74 28 20 72 2) );..print( r
0170: 65 76 65 72 73 65 41 72 67 73 28 31 20 2d 20 32 everseArgs(1 - 2
0180: 29 20 29 3b 0a 7d 3b 0a 0a 6d 61 69 6e 28 29 ) );.};..main()