我有以下函数,我想使用它们的返回值作为父函数的参数来调用多个其他函数。
目前有效:
(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)))))
答案 0 :(得分:2)
您的代码应该按原样运行。您只需删除A
周围的括号即可。你的直觉是对的,这正是像Lisp这样的函数式语言应该使用的范式。您提供的第一个示例更多的是如何使用Java,c ++等命令式语言进行编码。
(defun feet-to-m (A)
(cm-to-m (inches-to-cm (feet-to-inches A))))