gpt4 book ai didi

scheme - 为什么 Lisp 文件不是语句列表?

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

我一直在通过 Little Schemer 书学习 Scheme,令我感到奇怪的是,Scheme/Lisp 中的文件不是语句列表。我的意思是,在 Lisp 中一切都应该是一个列表,但是一个充满语句的文件对我来说并不像一个列表。它是否表示为下面的列表?它不是文件中的列表,这似乎很奇怪。

例如...

#lang scheme

(define atom?
(lambda (x)
(and (not (pair? x)) (not (null? x)))))

(define sub1
(lambda (x y)
(- x y)))

(define add1
(lambda (x y)
(+ x y)))

(define zero?
(lambda (x)
(= x 0)))

每个define语句都是一个列表,但是没有define语句的列表。

最佳答案

不是,因为没有实际原因。事实上,一系列的define语句改变了语言的内部状态。可以通过函数访问有关状态的信息。例如,您可以询问 Lisp 是否某些符号绑定(bind)到函数。

遍历所有输入的表单(例如,define 表单)没有实际好处。我想这种方法(所有语句都是列表的元素)会导致代码难以阅读。

另外,我认为“在 Lisp 中一切都应该是列表”的想法不太正确,因为还有一些原子类型,它们是完全自给自足的。

关于scheme - 为什么 Lisp 文件不是语句列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25720046/

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