All pastes #546838 Raw Edit

Razvan

public text v1 · immutable
·published 2007-06-07 05:33 UTC
rendered paste body
(define n 8)
(define on_board
  (lambda (x)
    (if (and (> x 0) (< x (* n n)))
        #T
        #F
        )))
(define neigh
  (lambda (x L)
    (if (and (on_board x) (not (exista L x)))
        (begin
          (if (= (length L) (- (* n n) 1)) (display (reverse (cons x L)))
          (begin
          (if (or (>= (modulo x n) 2) (= (modulo x n) 0))
              (begin
                   (neigh (+ (- (* 2 n) 1)) (cons x L))
                   (neigh (- (+ (* 2 n) 1)) (cons x L))))
    (if (and (<= (modulo x n) (- n 1)) (not (= (modulo x n) 0)))
        (begin
          (neigh (+ x (+ (* 2 n) 1)) (cons x L))
          (neigh (- x (- (* 2 n) 1)) (cons x L))))
    (if (or (>= (modulo x n) 3) (= (modulo x n) 0))
                  (begin
                    (neigh (+ x (- n 2)) (cons x L))
                    (neigh (- x (+ n 2)) (cons x L))))
    (if (and (<= (modulo x n) (- n 2)) (not (= (modulo x n) 0)))       
                 (begin
                    (neigh (+ x (+ n 2)) (cons x L))
                    (neigh (- x (- n 2)) (cons x L))))
          ))))))   
(define exista
  (lambda (L e)
     (if (null? L) #f
        (if (= (car L) e) #t
              (exista (cdr L) e)))))