gpt4 book ai didi

lisp - Lisp 中的冗余

转载 作者:太空宇宙 更新时间:2023-11-03 18:38:47 26 4
gpt4 key购买 nike

我已经开始学习 Lisp 并且想知道以多种不同方式完成特定任务的所有冗余是否有用?相信有经验的 Lisp 程序员可以回答这个问题。

举个例子。我们可以通过以下两种不同的方式创建函数。

(defun add2 (x) (+ x 2))

(setf (symbol-function 'add2)
#'(lambda (x) (+ x 2))

我知道这提供了实现不同目标的灵 active 。但是,正确解释为什么会有所有这些冗余可以帮助我更好地理解事情。

最佳答案

存在第一种形式是因为定义函数是一件很常见的苦差事,您需要一种方便的语法。

存在第二种形式是因为有时您希望使用生成函数定义的宏来执行高级操作。

如果没有 defun,我们仍然可以用您的第二种形式定义函数,但是没有人会用 Lisp 编程,因为一个简单的任务会非常艰巨。每个程序员都将设计自己的 defun 宏,与所有其他的都不兼容。

关于lisp - Lisp 中的冗余,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8066473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com