mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-21 06:39:16 +02:00
115 lines
5.5 KiB
Scheme
115 lines
5.5 KiB
Scheme
; loading nqueens-cyclone-cps.scm ...
|
|
((define nqueens
|
|
(lambda (k$30 n$4)
|
|
((lambda (dec-to$10 ok?$9 try$8)
|
|
((lambda (dec-to$13 try$12 ok?$11)
|
|
((lambda (r$67)
|
|
((lambda (r$31)
|
|
((lambda (r$50)
|
|
((lambda (r$32)
|
|
((lambda (r$37)
|
|
((lambda (r$33)
|
|
(dec-to$10
|
|
(lambda (r$34)
|
|
((lambda (r$35)
|
|
((lambda (r$36) (try$8 k$30 r$34 r$35 r$36)) '()))
|
|
'()))
|
|
n$4))
|
|
(set! ok?$9 r$37)))
|
|
(lambda (k$38 row$16 dist$15 placed$14)
|
|
((lambda (r$39)
|
|
(if r$39
|
|
(k$38 #t)
|
|
((lambda (r$48)
|
|
((lambda (r$49)
|
|
((lambda (r$47)
|
|
(not (lambda (r$40)
|
|
(if r$40
|
|
((lambda (r$45)
|
|
((lambda (r$46)
|
|
((lambda (r$44)
|
|
(not (lambda (r$41)
|
|
(if r$41
|
|
((lambda (r$42)
|
|
((lambda (r$43) (ok?$9 k$38 row$16 r$42 r$43))
|
|
(cdr placed$14)))
|
|
(+ dist$15 1))
|
|
(k$38 #f)))
|
|
r$44))
|
|
(= r$45 r$46)))
|
|
(- row$16 dist$15)))
|
|
(car placed$14))
|
|
(k$38 #f)))
|
|
r$47))
|
|
(= r$48 r$49)))
|
|
(+ row$16 dist$15)))
|
|
(car placed$14))))
|
|
(null? placed$14)))))
|
|
(set! try$8 r$50)))
|
|
(lambda (k$51 x$19 y$18 z$17)
|
|
((lambda (r$52)
|
|
(if r$52
|
|
((lambda (r$53) (if r$53 (k$51 1) (k$51 0)))
|
|
(null? y$18))
|
|
((lambda (k$59)
|
|
((lambda (r$66)
|
|
(ok?$9 (lambda (r$60)
|
|
(if r$60
|
|
((lambda (r$65)
|
|
(append
|
|
(lambda (r$61)
|
|
((lambda (r$62)
|
|
((lambda (r$64)
|
|
((lambda (r$63) (try$8 k$59 r$61 r$62 r$63))
|
|
(cons r$64 z$17)))
|
|
(car x$19)))
|
|
'()))
|
|
r$65
|
|
y$18))
|
|
(cdr x$19))
|
|
(k$59 0)))
|
|
r$66
|
|
1
|
|
z$17))
|
|
(car x$19)))
|
|
(lambda (r$54)
|
|
((lambda (r$56)
|
|
((lambda (r$58)
|
|
((lambda (r$57)
|
|
(try$8 (lambda (r$55) (k$51 (+ r$54 r$55)))
|
|
r$56
|
|
r$57
|
|
z$17))
|
|
(cons r$58 y$18)))
|
|
(car x$19)))
|
|
(cdr x$19))))))
|
|
(null? x$19)))))
|
|
(set! dec-to$10 r$67)))
|
|
(lambda (k$68 n$20)
|
|
((lambda (r$69)
|
|
((lambda (i$22 l$21)
|
|
((lambda (loop$23)
|
|
((lambda (r$71)
|
|
((lambda (r$70) (loop$23 k$68 i$22 l$21))
|
|
(set! loop$23 r$71)))
|
|
(lambda (k$72 i$25 l$24)
|
|
((lambda (r$73)
|
|
(if r$73
|
|
(k$72 l$24)
|
|
((lambda (r$74)
|
|
((lambda (r$75) (loop$23 k$72 r$74 r$75))
|
|
(cons i$25 l$24)))
|
|
(- i$25 1))))
|
|
(= i$25 0)))))
|
|
#f))
|
|
n$20
|
|
r$69))
|
|
'()))))
|
|
#f
|
|
#f
|
|
#f))
|
|
#f
|
|
#f
|
|
#f)))
|
|
((lambda ()
|
|
((lambda (r$26) (nqueens (lambda (r$27) (write %halt r$27)) 8)) 0))))
|