Added nqueens CPS

This commit is contained in:
Justin Ethier 2016-05-26 22:23:17 -04:00
parent 3467ce3a4d
commit e7fed626c0

View file

@ -26,50 +26,394 @@
;(newline) ;(newline)
(define input-program (define input-program
'((define test '((define nqueens
#((record-marker) #((record-marker)
#((record-marker) #f (id args body)) #((record-marker) #f (id args body))
#(9 (k$11 a$4) ((write k$11 3))))) #(51
(#((record-marker) (k$30 n$4)
#((record-marker) #f (id args body))
#(8
(y$1)
((#((record-marker) ((#((record-marker)
#((record-marker) #f (id args body)) #((record-marker) #f (id args body))
#(7 #(50
() (dec-to$10 ok?$9 try$8)
((#((record-marker) ((#((record-marker)
#((record-marker) #f (id args body)) #((record-marker) #f (id args body))
#(6 #(49
(r$5) (dec-to$13 try$12 ok?$11)
((#((record-marker) ((#((record-marker)
#((record-marker) #f (id args body)) #((record-marker) #f (id args body))
#(5 #(38
(x$2) (r$65)
((#((record-marker) ((#((record-marker)
#((record-marker) #f (id args body)) #((record-marker) #f (id args body))
#(4 #(37
(y$3) (r$31)
((#((record-marker) ((#((record-marker)
#((record-marker) #f (id args body)) #((record-marker) #f (id args body))
#(3 #(20
(r$7) (r$48)
((#((record-marker) ((#((record-marker)
#((record-marker) #f (id args body)) #((record-marker) #f (id args body))
#(2 #(19
(r$8) (r$32)
((write #((record-marker) ((#((record-marker)
#((record-marker) #((record-marker)
#f #f
(id args body)) (id args body))
#(1 (r$6) ((test %halt 4)))) #(8
r$8)))) (r$37)
(+ x$2 y$3))))) ((#((record-marker)
(set! y$3 2))))) #((record-marker)
#f
(id args body))
#(7
(r$33)
((dec-to$10
#((record-marker)
#((record-marker)
#f
(id args body))
#(6
(r$34)
((#((record-marker)
#((record-marker)
#f
(id args
body))
#(5
(r$35)
((#((record-marker)
#((record-marker)
#f
(id args
body))
#(4
(r$36)
((try$8 k$30
r$34
r$35
r$36))))
'()))))
'()))))
n$4))))
(set! ok?$9 r$37)))))
#((record-marker)
#((record-marker)
#f
(id args body))
#(18
(k$38 row$16 dist$15 placed$14)
((#((record-marker)
#((record-marker)
#f
(id args body))
#(17
(r$39)
((if r$39
(k$38 #t)
(#((record-marker)
#((record-marker)
#f
(id args body))
#(16
(r$46)
((#((record-marker)
#((record-marker)
#f
(id args
body))
#(15
(r$47)
((#((record-marker)
#((record-marker)
#f
(id args
body))
#(14
(r$40)
((if r$40
(k$38 #f)
(#((record-marker)
#((record-marker)
#f
(id args
body))
#(13
(r$44)
((#((record-marker)
#((record-marker)
#f
(id args
body))
#(12
(r$45)
((#((record-marker)
#((record-marker)
#f
(id args
body))
#(11
(r$41)
((if r$41
(k$38 #f)
(#((record-marker)
#((record-marker)
#f
(id args
body))
#(10
(r$42)
((#((record-marker)
#((record-marker)
#f
(id args
body))
#(9
(r$43)
((ok?$9 k$38
row$16
r$42
r$43))))
(cdr placed$14)))))
(+ dist$15
1))))))
(= r$44
r$45)))))
(- row$16
dist$15)))))
(car placed$14))))))
(= r$46
r$47)))))
(+ row$16
dist$15)))))
(car placed$14))))))
(null? placed$14)))))))))
(set! try$8 r$48)))))
#((record-marker)
#((record-marker) #f (id args body))
#(36
(k$49 x$19 y$18 z$17)
((#((record-marker)
#((record-marker) #f (id args body))
#(35
(r$50)
((if r$50
(#((record-marker)
#((record-marker)
#f
(id args body))
#(21
(r$51)
((if r$51
(k$49 1)
(k$49 0)))))
(null? y$18))
(#((record-marker)
#((record-marker)
#f
(id args body))
#(34
(k$57)
((#((record-marker)
#((record-marker)
#f
(id args body))
#(33
(r$64)
((ok?$9 #((record-marker)
#((record-marker)
#f
(id args
body))
#(32
(r$58)
((if r$58
(#((record-marker)
#((record-marker)
#f
(id args
body))
#(31
(r$63)
((append
#((record-marker)
#((record-marker)
#f
(id args
body))
#(30
(r$59)
((#((record-marker)
#((record-marker)
#f
(id args
body))
#(29
(r$60)
((#((record-marker)
#((record-marker)
#f
(id args
body))
#(28
(r$62)
((#((record-marker)
#((record-marker)
#f
(id args
body))
#(27
(r$61)
((try$8 k$57
r$59
r$60
r$61))))
(cons r$62
z$17)))))
(car x$19)))))
'()))))
r$63
y$18))))
(cdr x$19))
(k$57 0)))))
r$64
1
z$17))))
(car x$19)))))
#((record-marker)
#((record-marker)
#f
(id args body))
#(26
(r$52)
((#((record-marker)
#((record-marker)
#f
(id args body))
#(25
(r$54)
((#((record-marker)
#((record-marker)
#f
(id args body))
#(24
(r$56)
((#((record-marker)
#((record-marker)
#f
(id args
body))
#(23
(r$55)
((try$8 #((record-marker)
#((record-marker)
#f
(id args
body))
#(22
(r$53)
((k$49 (+ r$52
r$53)))))
r$54
r$55
z$17))))
(cons r$56
y$18)))))
(car x$19)))))
(cdr x$19))))))))))
(null? x$19)))))))))
(set! dec-to$10 r$65)))))
#((record-marker)
#((record-marker) #f (id args body))
#(48
(k$66 n$20)
((#((record-marker)
#((record-marker) #f (id args body))
#(47
(r$67)
((#((record-marker)
#((record-marker) #f (id args body))
#(46
(i$22 l$21)
((#((record-marker)
#((record-marker) #f (id args body))
#(45
(loop$23)
((#((record-marker)
#((record-marker)
#f
(id args body))
#(40
(r$69)
((#((record-marker)
#((record-marker)
#f
(id args body))
#(39
(r$68)
((loop$23
k$66
i$22
l$21))))
(set! loop$23 r$69)))))
#((record-marker)
#((record-marker)
#f
(id args body))
#(44
(k$70 i$25 l$24)
((#((record-marker)
#((record-marker)
#f
(id args body))
#(43
(r$71)
((if r$71
(k$70 l$24)
(#((record-marker)
#((record-marker)
#f
(id args body))
#(42
(r$72)
((#((record-marker)
#((record-marker)
#f
(id args
body))
#(41
(r$73)
((loop$23
k$70
r$72
r$73))))
(cons i$25
l$24)))))
(- i$25 1))))))
(= i$25 0)))))))))
#f)))) #f))))
1)))) n$20
0)))))))) r$67))))
#f)) '()))))))))
#f
#f
#f))))
#f
#f
#f)))))
(#((record-marker)
#((record-marker) #f (id args body))
#(3
()
((#((record-marker)
#((record-marker) #f (id args body))
#(2
(r$26)
((nqueens
#((record-marker)
#((record-marker) #f (id args body))
#(1 (r$27) ((write %halt r$27))))
8))))
0))))))
) )
(set! input-program (set! input-program