0

リスト内の最大数を見つけようとしていて、それを使って何かをします:

(defun maxList (l)
    (if (= (length l) 1)
            (first l)
        (if (> (first l) (maxList (rest l)))
            (first l)
            (maxList (rest l))
        );if
    );if
);defun


(defun try-let (l)
    (let (a (maxList l))
    (print a)
    );let
);defun

ただし、null を出力しますが、maxList は機能します。私は何を間違っていますか?

4

2 に答える 2

4

かっこのペアがありません:

(let ((a (maxList l)))

これは、let次のようにバインディングのリストを受け取るためです。

(let ((a 1) (b 2) (c 'foo))
  expr)

したがって、この場合、バインディングを含む 1 つの要素のリストを渡す必要があります。(a (maxList l))

于 2013-01-09T09:55:35.703 に答える