Hex Artifact Content
Not logged in

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