Hex Artifact Content
Not logged in

Artifact 157799e01f30b7fa349a8a515d2151b54b7643c1:


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