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

Lisp从函数作为参数返回到另一个函数,lisp,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 (

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

这项工作目前有效:

(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)))))

您的代码应该几乎按原样工作。你只需要去掉A周围的括号。你的直觉是对的,这正是像Lisp这样的函数式语言应该使用的范例。第一个例子是如何用java、C++等命令式语言编写代码。
(defun feet-to-m (A)
    (cm-to-m (inches-to-cm (feet-to-inches A))))

只是不要把A括在括号里:而是使用厘米到米英寸到厘米英尺到英寸A;没有括号的意思是使用A的值。有一些很棒的书籍免费提供,它们教授Lisp的基本知识。例如,询问代码的问题必须证明对正在解决的问题的最低理解。这个Q就是这样做的:它操作函数调用和函数调用链的概念。包括尝试过的解决方案、它们不起作用的原因以及预期结果。它确实做到了这一点:包括尝试的代码。唯一缺少的是错误消息。所以我觉得这个Q不应该关闭。当你尝试它时发生了什么?此外,如果英尺到英寸A已经可以工作了,为什么在第二种情况下要将其更改为英尺到英寸A?@Will Ness:嵌套函数调用在许多流行的编程语言中都可用。每个口齿不清的介绍都涉及到这一点。他已经忽略了他使用了未声明的变量,尽管SBCL会对此抱怨。