Lisp从函数作为参数返回到另一个

时间:2013-10-12 16:49:43

标签: lisp

我有以下函数,我想使用它们的返回值作为父函数的参数来调用多个其他函数。

目前有效:

(defun feet-to-m (A)
    (setf B (feet-to-inches A)) 
    (setf C (inches-to-cm B))   
    (setf D (cm-to-m C)))

我想知道Lisp是否有能力嵌套函数以便以下方法可行,或者更有效的方法:

(defun feet-to-m (A)
    (cm-to-m (inches-to-cm (feet-to-inches (A)))))

1 个答案:

答案 0 :(得分:2)

您的代码应该按原样运行。您只需删除A周围的括号即可。你的直觉是对的,这正是像Lisp这样的函数式语言应该使用的范式。您提供的第一个示例更多的是如何使用Java,c ++等命令式语言进行编码。

(defun feet-to-m (A)
    (cm-to-m (inches-to-cm (feet-to-inches A))))