Lisp关联列表

时间:2014-05-20 21:34:17

标签: lisp associative

(defun next ()
  (defparameter *sentences*
    '(
      (1 . "Test 1")
      (2 . "Test 2")))

  (let (sentence '(assoc 2 *sentences*)) ;This quote is needed, another program evaluates this.
    (format t "*sentences*:~%~a~%sentence: ~a~%" *sentences* sentence)))

它提供输出 " *句子*: ((1。测试1)(2。测试2)) 句子:NIL"。

为什么它不给(2。测试2)作为"句子"的价值?

提前致谢。

编辑:添加括号。原始程序与括号匹配。

1 个答案:

答案 0 :(得分:2)

您的let表格中缺少括号:

(defun next ()
  (defparameter *sentences*
    '(
      (1 . "Test 1")
      (2 . "Test 2")))
  (let ((sentence (assoc 2 *sentences*))) ;no quote, just parentheses ;-)
    (format t "*sentences*:~%~a~%sentence: ~a~%" *sentences* sentence)))