Saturday, September 12, 2009

eight-queen problem

Took me sometime to finish the exercise of 2.42: Eight-queen solution.

着实花费了点儿时间整理出了8后问题的解法。希望以后看到这段代码也能理解。

少し時間かけてやっと自分なりに8-queen問題の解答ができた。

(define (adjoin-position row col position-set)
     (append position-set (list (list row col))))

(define empty-board
     (list (quote ())))

(define (safe? k positions)
     (accumulate (lambda (x y)
               (and ((lambda (z)
                  (cond ((null? z) #t)
                    ((< (cadr z) k)
                     (cond ((= (car z) (car (last positions))) #f)
                       ((= (abs (- (car z) (car (last positions))))
                           (abs (- (cadr z) (cadr (last positions))))) #f)))
                    (else #t))) x)
                y))
             #t positions))

No comments:

Post a Comment