Artifact a9061a338889d74caa747b94859b38768ae362a8:
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 09 everse(a, {})}..
00f0: 09 29 0a 09 09 77 68 65 6e 20 5f 20 3a 0a 09 09 .)...when _ :...
0100: 28 0a 09 09 09 65 76 0a 09 09 29 0a 29 7d 3b 0a (....ev...).)};.
0110: 0a 64 65 66 20 6d 61 69 6e 28 29 0a 7b 0a 09 70 .def main().{..p
0120: 72 69 6e 74 28 20 72 65 76 65 72 73 65 41 72 67 rint( reverseArg
0130: 73 28 31 20 2b 20 32 29 20 29 3b 0a 09 70 72 69 s(1 + 2) );..pri
0140: 6e 74 28 20 72 65 76 65 72 73 65 41 72 67 73 28 nt( reverseArgs(
0150: 31 20 2d 20 32 29 20 29 3b 0a 7d 3b 0a 0a 6d 61 1 - 2) );.};..ma
0160: 69 6e 28 29 in()