2009-07-03から1日間の記事一覧

N-Queen(1)

N-Queen問題を、いくつかの方法で解いてみる。とりあえず、一番簡単・簡潔だと思うのは、次のコード。 参照: nlet-acc ;; row番目に新たなqueenを置けるかチェック (defun check (row queens &optional (r 1)) (or (null queens) (and (/= (car queens) row …

nlet-acc

良く使うユーティリティ関数・マクロの定義などを書くことにする。*1 一つ目はこれ。 【定義】 (defmacro nlet-acc (fn-name letargs &body body) (let (acc (gensym)) `(let ((,acc '())) ; acc: 結果蓄積用のlist ※1 (flet ((accumulate (x) (push x ,acc)…