CLISP中需要说明

时间:2018-05-15 08:35:42

标签: lisp common-lisp

有人可以用flet操作员解释这部分吗? :

(defun read-3-numbers-&-format-sum ()
  (flet ((prompt (string)
           (format t "~&~a: " string)
           (read nil 'eof nil)))
    (let ((x (prompt "first number"))
          (y (prompt "second number"))
          (z (prompt "third number")))
      (format t "~&the sum of ~a, ~a, & ~a is:~%~%~a~%"
              x y z (+ x y z)))))

1 个答案:

答案 0 :(得分:3)

Common Lisp文档的来源是Common Lisp Hyperspec,它可以在互联网上的不同位置找到。

在那里查找flethttp://clhs.lisp.se/Body/s_flet_.htm#flet

它建立了一个本地函数定义。它的范围是它的主体(即在这种情况下let形式)。函数定义的工作方式类似于使用defun定义的“普通”函数。