Lispを触ってみる(CLISP)

Lispを触ってみる。

前提

実行環境(CLISP

試実行

clisp

(+ 1 (* 2 2))

(expt 2 10)

(/ 27 132)

(/ 27.0 132)

(sort '(3 1 2) '<)

(sort '(a c b) 'string<)

(princ "Hello world!")

(quit)
数当てゲーム(後述の参考文献を参照)

定義

(defun guess-my-number ()
  (ash (+ *small* *big*) -1))

(defun start-over ()
  (defparameter *small* 1)
  (defparameter *big* 100)
  (guess-my-number))

(defun smaller ()
  (setf *big* (1- (guess-my-number)))
  (guess-my-number))

(defun bigger ()
  (setf *small* (1+ (guess-my-number)))
  (guess-my-number))

実行例(答えが「39」の場合)

(start-over)
(smaller)
(bigger)
(bigger)
(smaller)
(smaller)
(bigger)
リストの長さ(トップレベルのS式の数)
(defun my-length (x)
  (cond ((null x) 0)
        (t (1+ (length (cdr x)))) ))

参考文献

Land of Lisp

Land of Lisp