Skip to content

Instantly share code, notes, and snippets.

@andresilva
Created February 10, 2015 22:02
Show Gist options
  • Select an option

  • Save andresilva/310a96fae981c6af71c0 to your computer and use it in GitHub Desktop.

Select an option

Save andresilva/310a96fae981c6af71c0 to your computer and use it in GitHub Desktop.
LambdaLisp random bot
DUM 200
LDC 0
LDF 7
AP 1
LDF 18
RAP 200
RTN
LDC 0
LD 0 0
LDC 199
CEQ
TSEL 17 12
LD 0 0
LDC 1
ADD
LDF 7
AP 1
RTN
LDC 0
LDC -2147483648
ST 0 0 ; define var_nil
LD 0 0
CONS
CDR
LDC 1
ST 0 1 ; define var_true
LD 0 1
CONS
CDR
LDC 0
ST 0 2 ; define var_false
LD 0 2
CONS
CDR
LDF 37
LDC 1
TSEL 41 0
LD 0 1 ; load var_x
LDC 0
CEQ
RTN
ST 0 3 ; define var_zero?
LD 0 3
CONS
CDR
LDF 48
LDC 1
TSEL 60 0
LD 0 1 ; load var_l
ATOM
SEL 53 57
LDC 1
TSEL 59 0
LD 0 1 ; load var_l
LD 1 0 ; load var_nil
CEQ
JOIN ; merge then
LDC 0
JOIN : merge else
RTN
ST 0 4 ; define var_empty?
LD 0 4
CONS
CDR
LDF 67
LDC 1
TSEL 71 0
LDC 0
LD 0 1 ; load var_x
CGT
RTN
ST 0 5 ; define var_negative?
LD 0 5
CONS
CDR
LDF 78
LDC 1
TSEL 82 0
LD 0 1 ; load var_x
LDC 0
CGTE
RTN
ST 0 6 ; define var_positive?
LD 0 6
CONS
CDR
LDF 89
LDC 1
TSEL 124 0
LDF 92
LDC 1
TSEL 113 0
LD 2 4 ; load var_empty?
LD 0 1 ; load var_l
LD 2 4 ; load var_empty?
AP 2 ; call fun_empty?
TSEL 97 99
LD 0 3 ; load var_res
RTN ; return from then
LD 0 0 ; load var_self
LD 0 1 ; load var_l
CDR
LD 0 2 ; load var_f
LD 0 2 ; load var_f
LD 0 3 ; load var_res
LD 0 1 ; load var_l
CAR
LD 0 2 ; load var_f
AP 3 ; call fun_f
LD 0 0 ; load var_self
TAP 4 ; call tfun_self
RTN ; return from else
RTN
DUM 1 ; let (foldaux)
LDF 117
RAP 1
RTN
LD 0 0 ; load var_foldaux
LD 1 2 ; load var_l
LD 1 3 ; load var_f
LD 1 1 ; load var_b
LD 0 0 ; load var_foldaux
AP 4 ; call fun_foldaux
RTN
ST 0 7 ; define var_foldLeft
LD 0 7
CONS
CDR
LDF 131
LDC 1
TSEL 144 0
LD 1 7 ; load var_foldLeft
LD 1 0 ; load var_nil
LD 0 1 ; load var_l
LDF 137
LDC 1
TSEL 141 0
LD 0 2 ; load var_e
LD 0 1 ; load var_acc
CONS
RTN
LD 1 7 ; load var_foldLeft
AP 4 ; call fun_foldLeft
RTN
ST 0 8 ; define var_reverse
LD 0 8
CONS
CDR
LDF 151
LDC 1
TSEL 174 0
LD 1 4 ; load var_empty?
LD 0 1 ; load var_l
LD 1 4 ; load var_empty?
AP 2 ; call fun_empty?
SEL 158 160
LDC 1
TSEL 173 0
LD 1 0 ; load var_nil
JOIN ; merge then
LD 0 2 ; load var_f
LD 0 1 ; load var_l
CAR
LD 0 2 ; load var_f
AP 2 ; call fun_f
LD 0 0 ; load var_self
LD 0 1 ; load var_l
CDR
LD 0 2 ; load var_f
LD 0 0 ; load var_self
AP 3 ; call fun_self
CONS
JOIN : merge else
RTN
ST 0 9 ; define var_map
LD 0 9
CONS
CDR
LDF 181
LDC 1
TSEL 207 0
LD 1 8 ; load var_reverse
LD 1 7 ; load var_foldLeft
LD 1 0 ; load var_nil
LD 0 1 ; load var_l
LDF 188
LDC 1
TSEL 202 0
LD 1 2 ; load var_f
LD 0 2 ; load var_e
LD 1 2 ; load var_f
AP 2 ; call fun_f
SEL 195 199
LDC 1
TSEL 201 0
LD 0 2 ; load var_e
LD 0 1 ; load var_acc
CONS
JOIN ; merge then
LD 0 1 ; load var_acc
JOIN : merge else
RTN
LD 1 7 ; load var_foldLeft
AP 4 ; call fun_foldLeft
LD 1 8 ; load var_reverse
AP 2 ; call fun_reverse
RTN
ST 0 10 ; define var_filter
LD 0 10
CONS
CDR
LDF 214
LDC 1
TSEL 235 0
LD 1 7 ; load var_foldLeft
LD 1 1 ; load var_true
LD 0 1 ; load var_l
LDF 220
LDC 1
TSEL 232 0
LD 1 2 ; load var_f
LD 0 2 ; load var_e
LD 1 2 ; load var_f
AP 2 ; call fun_f
SEL 227 229
LDC 1
TSEL 231 0
LD 0 1 ; load var_acc
JOIN ; merge then
LDC 0
JOIN : merge else
RTN
LD 1 7 ; load var_foldLeft
AP 4 ; call fun_foldLeft
RTN
ST 0 11 ; define var_forall
LD 0 11
CONS
CDR
LDF 242
LDC 1
TSEL 263 0
LD 1 7 ; load var_foldLeft
LD 1 2 ; load var_false
LD 0 1 ; load var_l
LDF 248
LDC 1
TSEL 260 0
LD 1 2 ; load var_f
LD 0 2 ; load var_e
LD 1 2 ; load var_f
AP 2 ; call fun_f
SEL 255 257
LDC 1
TSEL 259 0
LDC 1
JOIN ; merge then
LD 0 1 ; load var_acc
JOIN : merge else
RTN
LD 1 7 ; load var_foldLeft
AP 4 ; call fun_foldLeft
RTN
ST 0 12 ; define var_exists
LD 0 12
CONS
CDR
LDF 270
LDC 1
TSEL 281 0
LD 1 7 ; load var_foldLeft
LD 1 0 ; load var_nil
LD 0 1 ; load var_l
LDF 276
LDC 1
TSEL 278 0
LD 0 2 ; load var_e
RTN
LD 1 7 ; load var_foldLeft
AP 4 ; call fun_foldLeft
RTN
ST 0 13 ; define var_last
LD 0 13
CONS
CDR
LDF 288
LDC 1
TSEL 337 0
LDF 291
LDC 1
TSEL 326 0
LD 2 4 ; load var_empty?
LD 0 1 ; load var_l
LD 2 4 ; load var_empty?
AP 2 ; call fun_empty?
SEL 298 300
LDC 1
TSEL 308 0
LDC 1
JOIN ; merge then
LD 0 2 ; load var_f
LD 0 1 ; load var_l
CAR
LD 0 2 ; load var_f
AP 2 ; call fun_f
LDC 0
CEQ
JOIN : merge else
TSEL 309 314
LD 2 8 ; load var_reverse
LD 0 3 ; load var_res
LD 2 8 ; load var_reverse
AP 2 ; call fun_reverse
RTN ; return from then
LD 0 0 ; load var_self
LD 0 1 ; load var_l
CDR
LD 0 2 ; load var_f
LD 0 1 ; load var_l
CAR
LD 0 3 ; load var_res
CONS
LD 0 0 ; load var_self
TAP 4 ; call tfun_self
RTN ; return from else
RTN
DUM 1 ; let (takeWhileAux)
LDF 330
RAP 1
RTN
LD 0 0 ; load var_takeWhileAux
LD 1 1 ; load var_l
LD 1 2 ; load var_f
LD 2 0 ; load var_nil
LD 0 0 ; load var_takeWhileAux
AP 4 ; call fun_takeWhileAux
RTN
ST 0 14 ; define var_takeWhile
LD 0 14
CONS
CDR
LDF 344
LDC 1
TSEL 372 0
LD 1 4 ; load var_empty?
LD 0 1 ; load var_l
LD 1 4 ; load var_empty?
AP 2 ; call fun_empty?
SEL 351 353
LDC 1
TSEL 361 0
LDC 1
JOIN ; merge then
LD 0 2 ; load var_f
LD 0 1 ; load var_l
CAR
LD 0 2 ; load var_f
AP 2 ; call fun_f
LDC 0
CEQ
JOIN : merge else
TSEL 362 364
LD 0 1 ; load var_l
RTN ; return from then
LD 0 0 ; load var_self
LD 0 1 ; load var_l
CDR
LD 0 2 ; load var_f
LD 0 0 ; load var_self
TAP 3 ; call tfun_self
RTN ; return from else
RTN
ST 0 15 ; define var_dropWhile
LD 0 15
CONS
CDR
LDF 379
LDC 1
TSEL 392 0
LD 1 7 ; load var_foldLeft
LDC 0
LD 0 1 ; load var_l
LDF 385
LDC 1
TSEL 389 0
LD 0 1 ; load var_acc
LDC 1
ADD
RTN
LD 1 7 ; load var_foldLeft
AP 4 ; call fun_foldLeft
RTN
ST 0 16 ; define var_length
LD 0 16
CONS
CDR
LDF 399
LDC 1
TSEL 417 0
LD 1 3 ; load var_zero?
LD 0 2 ; load var_n
LD 1 3 ; load var_zero?
AP 2 ; call fun_zero?
TSEL 404 407
LD 0 1 ; load var_li
CAR
RTN ; return from then
LD 0 0 ; load var_self
LD 0 1 ; load var_li
CDR
LD 0 2 ; load var_n
LDC 1
SUB
LD 0 0 ; load var_self
TAP 3 ; call tfun_self
RTN ; return from else
RTN
ST 0 17 ; define var_nth
LD 0 17
CONS
CDR
LDF 424
LDC 1
TSEL 447 0
LD 1 3 ; load var_zero?
LD 0 2 ; load var_i
LD 1 3 ; load var_zero?
AP 2 ; call fun_zero?
TSEL 429 436
LD 1 17 ; load var_nth
LD 0 1 ; load var_li
CAR
LD 0 3 ; load var_j
LD 1 17 ; load var_nth
AP 3 ; call fun_nth
RTN ; return from then
LD 0 0 ; load var_self
LD 0 1 ; load var_li
CDR
LD 0 2 ; load var_i
LDC 1
SUB
LD 0 3 ; load var_j
LD 0 0 ; load var_self
TAP 4 ; call tfun_self
RTN ; return from else
RTN
ST 0 18 ; define var_nnth
LD 0 18
CONS
CDR
LDF 454
LDC 1
TSEL 495 0
LDF 457
LDC 1
TSEL 484 0
LD 2 4 ; load var_empty?
LD 0 1 ; load var_l
LD 2 4 ; load var_empty?
AP 2 ; call fun_empty?
TSEL 462 464
LD 2 0 ; load var_nil
RTN ; return from then
LD 0 2 ; load var_f
LD 0 1 ; load var_l
CAR
LD 0 2 ; load var_f
AP 2 ; call fun_f
TSEL 470 472
LD 0 3 ; load var_n
RTN ; return from then
LD 0 0 ; load var_self
LD 0 1 ; load var_l
CDR
LD 0 2 ; load var_f
LD 0 3 ; load var_n
LDC 1
ADD
LD 0 0 ; load var_self
TAP 4 ; call tfun_self
RTN ; return from else
RTN ; return from else
RTN
DUM 1 ; let (findaux)
LDF 488
RAP 1
RTN
LD 0 0 ; load var_findaux
LD 1 1 ; load var_l
LD 1 2 ; load var_f
LDC 0
LD 0 0 ; load var_findaux
AP 4 ; call fun_findaux
RTN
ST 0 19 ; define var_find
LD 0 19
CONS
CDR
LDF 502
LDC 1
TSEL 536 0
LDF 505
LDC 1
TSEL 524 0
LDC 0
LD 0 1 ; load var_m
CGT
TSEL 509 511
LD 0 2 ; load var_res
RTN ; return from then
LD 0 0 ; load var_self
LD 0 1 ; load var_m
LDC 1
SUB
LD 1 1 ; load var_n
LD 0 1 ; load var_m
ADD
LD 0 2 ; load var_res
CONS
LD 0 0 ; load var_self
TAP 3 ; call tfun_self
RTN ; return from else
RTN
DUM 1 ; let (rangeaux)
LDF 528
RAP 1
RTN
LD 0 0 ; load var_rangeaux
LD 1 2 ; load var_m
LD 1 1 ; load var_n
SUB
LD 2 0 ; load var_nil
LD 0 0 ; load var_rangeaux
AP 3 ; call fun_rangeaux
RTN
ST 0 20 ; define var_range
LD 0 20
CONS
CDR
LDF 543
LDC 1
TSEL 563 0
LD 1 3 ; load var_zero?
LD 0 2 ; load var_n
LD 1 3 ; load var_zero?
AP 2 ; call fun_zero?
SEL 550 552
LDC 1
TSEL 562 0
LDC 1
JOIN ; merge then
LD 0 1 ; load var_v
LD 0 0 ; load var_self
LD 0 1 ; load var_v
LD 0 2 ; load var_n
LDC 1
SUB
LD 0 0 ; load var_self
AP 3 ; call fun_self
MUL
JOIN : merge else
RTN
ST 0 21 ; define var_pow
LD 0 21
CONS
CDR
LDF 570
LDC 1
TSEL 578 0
LD 0 1 ; load var_n
LD 0 1 ; load var_n
LD 0 2 ; load var_m
DIV
LD 0 2 ; load var_m
MUL
SUB
RTN
ST 0 22 ; define var_mod
LD 0 22
CONS
CDR
LDF 585
LDC 1
TSEL 597 0
LD 1 6 ; load var_positive?
LD 0 1 ; load var_x
LD 1 6 ; load var_positive?
AP 2 ; call fun_positive?
TSEL 590 592
LD 0 1 ; load var_x
RTN ; return from then
LDC 0
LD 0 1 ; load var_x
SUB
RTN ; return from else
RTN
ST 0 23 ; define var_abs
LD 0 23
CONS
CDR
LDF 604
LDC 1
TSEL 665 0
LDF 607
LDC 1
TSEL 652 0
LD 2 4 ; load var_empty?
LD 0 1 ; load var_l
LD 2 4 ; load var_empty?
AP 2 ; call fun_empty?
TSEL 612 617
LD 2 8 ; load var_reverse
LD 0 4 ; load var_res
LD 2 8 ; load var_reverse
AP 2 ; call fun_reverse
RTN ; return from then
LD 0 2 ; load var_i
LD 0 5 ; load var_in
CEQ
TSEL 621 635
LD 0 0 ; load var_self
LD 0 1 ; load var_l
CDR
LD 0 2 ; load var_i
LD 0 3 ; load var_v
LD 0 3 ; load var_v
LD 0 4 ; load var_res
CONS
LD 0 5 ; load var_in
LDC 1
ADD
LD 0 0 ; load var_self
TAP 6 ; call tfun_self
RTN ; return from then
LD 0 0 ; load var_self
LD 0 1 ; load var_l
CDR
LD 0 2 ; load var_i
LD 0 3 ; load var_v
LD 0 1 ; load var_l
CAR
LD 0 4 ; load var_res
CONS
LD 0 5 ; load var_in
LDC 1
ADD
LD 0 0 ; load var_self
TAP 6 ; call tfun_self
RTN ; return from else
RTN ; return from else
RTN
DUM 1 ; let (setaux)
LDF 656
RAP 1
RTN
LD 0 0 ; load var_setaux
LD 1 1 ; load var_l
LD 1 2 ; load var_i
LD 1 3 ; load var_v
LD 2 0 ; load var_nil
LDC 0
LD 0 0 ; load var_setaux
AP 6 ; call fun_setaux
RTN
ST 0 24 ; define var_set
LD 0 24
CONS
CDR
LDF 672
LDC 1
TSEL 710 0
LDF 675
LDC 1
TSEL 699 0
LD 2 4 ; load var_empty?
LD 0 1 ; load var_l
LD 2 4 ; load var_empty?
AP 2 ; call fun_empty?
TSEL 680 687
LD 2 8 ; load var_reverse
LD 0 2 ; load var_v
LD 0 3 ; load var_res
CONS
LD 2 8 ; load var_reverse
AP 2 ; call fun_reverse
RTN ; return from then
LD 0 0 ; load var_self
LD 0 1 ; load var_l
CDR
LD 0 2 ; load var_v
LD 0 1 ; load var_l
CAR
LD 0 3 ; load var_res
CONS
LD 0 0 ; load var_self
TAP 4 ; call tfun_self
RTN ; return from else
RTN
DUM 1 ; let (appendaux)
LDF 703
RAP 1
RTN
LD 0 0 ; load var_appendaux
LD 1 1 ; load var_l
LD 1 2 ; load var_v
LD 2 0 ; load var_nil
LD 0 0 ; load var_appendaux
AP 4 ; call fun_appendaux
RTN
ST 0 25 ; define var_append
LD 0 25
CONS
CDR
LDF 717
LDC 1
TSEL 737 0
LD 1 4 ; load var_empty?
LD 0 1 ; load var_l1
LD 1 4 ; load var_empty?
AP 2 ; call fun_empty?
SEL 724 726
LDC 1
TSEL 736 0
LD 0 2 ; load var_l2
JOIN ; merge then
LD 0 1 ; load var_l1
CAR
LD 0 0 ; load var_self
LD 0 1 ; load var_l1
CDR
LD 0 2 ; load var_l2
LD 0 0 ; load var_self
AP 3 ; call fun_self
CONS
JOIN : merge else
RTN
ST 0 26 ; define var_concat
LD 0 26
CONS
CDR
LDF 744
LDC 1
TSEL 776 0
LDF 747
LDC 1
TSEL 765 0
LD 0 1 ; load var_n
LDC 0
CEQ
TSEL 751 753
LD 0 3 ; load var_res
RTN ; return from then
LD 0 0 ; load var_self
LD 0 1 ; load var_n
LDC 1
SUB
LD 0 2 ; load var_v
LD 0 2 ; load var_v
LD 0 3 ; load var_res
CONS
LD 0 0 ; load var_self
TAP 4 ; call tfun_self
RTN ; return from else
RTN
DUM 1 ; let (fillaux)
LDF 769
RAP 1
RTN
LD 0 0 ; load var_fillaux
LD 1 1 ; load var_n
LD 1 2 ; load var_v
LD 2 0 ; load var_nil
LD 0 0 ; load var_fillaux
AP 4 ; call fun_fillaux
RTN
ST 0 27 ; define var_fill
LD 0 27
CONS
CDR
LDF 783
LDC 1
TSEL 805 0
LD 1 7 ; load var_foldLeft
LD 0 1 ; load var_l
CAR
LD 0 1 ; load var_l
CDR
LDF 791
LDC 1
TSEL 802 0
LD 0 2 ; load var_b
LD 0 1 ; load var_a
CGT
SEL 797 799
LDC 1
TSEL 801 0
LD 0 1 ; load var_a
JOIN ; merge then
LD 0 2 ; load var_b
JOIN : merge else
RTN
LD 1 7 ; load var_foldLeft
AP 4 ; call fun_foldLeft
RTN
ST 0 28 ; define var_min
LD 0 28
CONS
CDR
LDF 812
LDC 1
TSEL 834 0
LD 1 7 ; load var_foldLeft
LD 0 1 ; load var_l
CAR
LD 0 1 ; load var_l
CDR
LDF 820
LDC 1
TSEL 831 0
LD 0 1 ; load var_a
LD 0 2 ; load var_b
CGT
SEL 826 828
LDC 1
TSEL 830 0
LD 0 1 ; load var_a
JOIN ; merge then
LD 0 2 ; load var_b
JOIN : merge else
RTN
LD 1 7 ; load var_foldLeft
AP 4 ; call fun_foldLeft
RTN
ST 0 29 ; define var_max
LD 0 29
CONS
CDR
LDF 841
LDC 1
TSEL 936 0
LDF 844
LDC 1
TSEL 875 0
LD 2 4 ; load var_empty?
LD 0 1 ; load var_l
LD 2 4 ; load var_empty?
AP 2 ; call fun_empty?
SEL 851 853
LDC 1
TSEL 857 0
LDC 1
JOIN ; merge then
LD 0 2 ; load var_i
LDC 0
CEQ
JOIN : merge else
SEL 860 862
LDC 1
TSEL 874 0
LD 2 0 ; load var_nil
JOIN ; merge then
LD 0 1 ; load var_l
CAR
LD 0 0 ; load var_self
LD 0 1 ; load var_l
CDR
LD 0 2 ; load var_i
LDC 1
SUB
LD 0 0 ; load var_self
AP 3 ; call fun_self
CONS
JOIN : merge else
RTN
DUM 1 ; let (take1)
LDF 879
RAP 1
RTN
LDF 882
LDC 1
TSEL 910 0
LD 3 4 ; load var_empty?
LD 0 1 ; load var_l
LD 3 4 ; load var_empty?
AP 2 ; call fun_empty?
SEL 889 891
LDC 1
TSEL 895 0
LDC 1
JOIN ; merge then
LD 0 2 ; load var_i
LDC 0
CEQ
JOIN : merge else
SEL 898 900
LDC 1
TSEL 909 0
LD 0 1 ; load var_l
JOIN ; merge then
LD 0 0 ; load var_self
LD 0 1 ; load var_l
CDR
LD 0 2 ; load var_i
LDC 1
SUB
LD 0 0 ; load var_self
AP 3 ; call fun_self
JOIN : merge else
RTN
DUM 1 ; let (take2)
LDF 914
RAP 1
RTN
LD 1 0 ; load var_take1
LD 2 1 ; load var_l
LD 2 2 ; load var_i
LD 1 0 ; load var_take1
AP 3 ; call fun_take1
DUM 1 ; let (l1)
LDF 923
RAP 1
RTN
LD 1 0 ; load var_take2
LD 3 1 ; load var_l
LD 3 2 ; load var_i
LD 1 0 ; load var_take2
AP 3 ; call fun_take2
DUM 1 ; let (l2)
LDF 932
RAP 1
RTN
LD 1 0 ; load var_l1
LD 0 0 ; load var_l2
CONS
RTN
ST 0 30 ; define var_split
LD 0 30
CONS
CDR
LDF 943
LDC 1
TSEL 977 0
LD 1 4 ; load var_empty?
LD 0 1 ; load var_l
LD 1 4 ; load var_empty?
AP 2 ; call fun_empty?
SEL 950 952
LDC 1
TSEL 976 0
LD 1 0 ; load var_nil
JOIN ; merge then
LD 0 1 ; load var_l
ATOM
SEL 957 961
LDC 1
TSEL 975 0
LD 0 1 ; load var_l
LD 1 0 ; load var_nil
CONS
JOIN ; merge then
LD 1 26 ; load var_concat
LD 0 0 ; load var_self
LD 0 1 ; load var_l
CAR
LD 0 0 ; load var_self
AP 2 ; call fun_self
LD 0 0 ; load var_self
LD 0 1 ; load var_l
CDR
LD 0 0 ; load var_self
AP 2 ; call fun_self
LD 1 26 ; load var_concat
AP 3 ; call fun_concat
JOIN : merge else
JOIN : merge else
RTN
ST 0 31 ; define var_flatten
LD 0 31
CONS
CDR
LDF 984
LDC 1
TSEL 1003 0
LD 1 4 ; load var_empty?
LD 0 1 ; load var_l
LD 1 4 ; load var_empty?
AP 2 ; call fun_empty?
TSEL 989 991
LD 1 0 ; load var_nil
RTN ; return from then
LD 1 26 ; load var_concat
LD 0 1 ; load var_l
CAR
LD 0 0 ; load var_self
LD 0 1 ; load var_l
CDR
LD 0 0 ; load var_self
AP 2 ; call fun_self
LD 1 26 ; load var_concat
AP 3 ; call fun_concat
RTN ; return from else
RTN
ST 0 32 ; define var_flatten1
LD 0 32
CONS
CDR
LDC 1
ST 0 33 ; define var_seed
LD 0 33
CONS
CDR
LDF 1015
LDC 1
TSEL 1040 0
LD 1 21 ; load var_pow
LDC 2
LDC 31
LD 1 21 ; load var_pow
AP 3 ; call fun_pow
LDC 1
SUB
LDC 48271
LDC 0
DUM 3 ; let (m a c)
LDF 1028
RAP 3
RTN
LD 2 22 ; load var_mod
LD 0 1 ; load var_a
LD 2 33 ; load var_seed
MUL
LD 0 2 ; load var_c
ADD
LD 0 0 ; load var_m
LD 2 22 ; load var_mod
AP 3 ; call fun_mod
ST 2 33 ; define var_seed
LD 2 33
RTN
ST 0 34 ; define var_random
LD 0 34
CONS
CDR
LDF 1047
LDC 1
TSEL 1067 0
LD 0 1 ; load var_n
LDC 0
CEQ
SEL 1053 1055
LDC 1
TSEL 1066 0
LD 1 0 ; load var_nil
JOIN ; merge then
LD 1 34 ; load var_random
LD 1 34 ; load var_random
AP 1 ; call fun_random
LD 0 0 ; load var_self
LD 0 1 ; load var_n
LDC 1
SUB
LD 0 0 ; load var_self
AP 2 ; call fun_self
CONS
JOIN : merge else
RTN
ST 0 35 ; define var_genrandom
LD 0 35
CONS
CDR
LDF 1074
LDC 1
TSEL 1098 0
LD 1 22 ; load var_mod
LD 1 34 ; load var_random
LD 1 34 ; load var_random
AP 1 ; call fun_random
LD 0 2 ; load var_m
LD 1 22 ; load var_mod
AP 3 ; call fun_mod
DUM 1 ; let (r)
LDF 1085
RAP 1
RTN
LD 0 0 ; load var_r
LD 1 1 ; load var_v
CEQ
TSEL 1089 1095
LD 1 0 ; load var_self
LD 1 1 ; load var_v
LD 1 2 ; load var_m
LD 1 0 ; load var_self
TAP 3 ; call tfun_self
RTN ; return from then
LD 0 0 ; load var_r
RTN ; return from else
RTN
ST 0 36 ; define var_randomnot
LD 0 36
CONS
CDR
LDF 1105
LDC 1
TSEL 1251 0
LD 0 1 ; load var_state
CAR
LD 0 1 ; load var_state
CDR
CAR
LD 0 1 ; load var_state
CDR
CDR
CAR
LD 0 1 ; load var_state
CDR
CDR
CDR
DUM 4 ; let (map lambdaman ghosts fruit)
LDF 1122
RAP 4
RTN
LD 0 1 ; load var_lambdaman
CDR
CAR
LD 0 1 ; load var_lambdaman
CDR
CDR
CAR
DUM 2 ; let (location direction)
LDF 1133
RAP 2
RTN
LD 0 1 ; load var_direction
LDC 0
CEQ
SEL 1139 1152
LDC 1
TSEL 1154 0
LD 3 18 ; load var_nnth
LD 1 0 ; load var_map
LD 0 0 ; load var_location
CDR
LDC 1
SUB
LD 0 0 ; load var_location
CAR
LD 3 18 ; load var_nnth
AP 4 ; call fun_nnth
LDC 0
CEQ
JOIN ; merge then
LDC 0
JOIN : merge else
SEL 1157 1159
LDC 1
TSEL 1181 0
LDC 1
JOIN ; merge then
LD 0 1 ; load var_direction
LDC 1
CEQ
SEL 1165 1178
LDC 1
TSEL 1180 0
LD 3 18 ; load var_nnth
LD 1 0 ; load var_map
LD 0 0 ; load var_location
CDR
LD 0 0 ; load var_location
CAR
LDC 1
ADD
LD 3 18 ; load var_nnth
AP 4 ; call fun_nnth
LDC 0
CEQ
JOIN ; merge then
LDC 0
JOIN : merge else
JOIN : merge else
SEL 1184 1186
LDC 1
TSEL 1208 0
LDC 1
JOIN ; merge then
LD 0 1 ; load var_direction
LDC 2
CEQ
SEL 1192 1205
LDC 1
TSEL 1207 0
LD 3 18 ; load var_nnth
LD 1 0 ; load var_map
LD 0 0 ; load var_location
CDR
LDC 1
ADD
LD 0 0 ; load var_location
CAR
LD 3 18 ; load var_nnth
AP 4 ; call fun_nnth
LDC 0
CEQ
JOIN ; merge then
LDC 0
JOIN : merge else
JOIN : merge else
SEL 1211 1213
LDC 1
TSEL 1235 0
LDC 1
JOIN ; merge then
LD 0 1 ; load var_direction
LDC 3
CEQ
SEL 1219 1232
LDC 1
TSEL 1234 0
LD 3 18 ; load var_nnth
LD 1 0 ; load var_map
LD 0 0 ; load var_location
CDR
LD 0 0 ; load var_location
CAR
LDC 1
SUB
LD 3 18 ; load var_nnth
AP 4 ; call fun_nnth
LDC 0
CEQ
JOIN ; merge then
LDC 0
JOIN : merge else
JOIN : merge else
SEL 1238 1246
LDC 1
TSEL 1250 0
LDC 0
LD 3 36 ; load var_randomnot
LD 0 1 ; load var_direction
LDC 4
LD 3 36 ; load var_randomnot
AP 3 ; call fun_randomnot
CONS
JOIN ; merge then
LDC 0
LD 0 1 ; load var_direction
CONS
JOIN : merge else
RTN
ST 0 37 ; define var_main
LD 0 37
CONS
CDR
LDC 0
LD 0 37 ; load var_main
CONS
CONS
CDR
RTN
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment