在 Racket 中创建一个空列表

发布于 2024-10-09 07:42:06 字数 149 浏览 3 评论 0原文

我正在使用计算机程序的结构和解释的在线文本自学 LISP,但它与我运行来学习 LISP 的 Racket 程序在一些小细节上有所不同。例如,SICP 规定任何列表的终止元素都是“nil”,但 Racket 不支持“nil”。如何在 Racket 中创建一个空列表以便测试我自己的程序?

I'm teaching myself LISP with online text of Structure and Interpretation of Computer Programs, but it differs in small details with the Racket program I'm running to learn LISP on. For example, SICP says that the terminating element of any list is 'nil', but Racket doesn't support 'nil'. How do I create an empty list in Racket so I can test my own procedures?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

满天都是小星星 2024-10-16 07:42:06

空列表表示为'()。所以你可以创建一个像这样的列表

(cons 1 (cons 2 (cons 3 '())))

这会产生列表

'(1 2 3)

The empty list is denoted '(). So you can create a list like

(cons 1 (cons 2 (cons 3 '())))

This produces the list

'(1 2 3)
剑心龙吟 2024-10-16 07:42:06

肖恩的回答是正确的。但是,如果您希望能够输入 nil,那也很简单。只需在会话开始时运行一次:

(define nil '())

Sean's answer is correct. However, if you want to be able to type nil, then that's easy too. Just run this once at the start of your session:

(define nil '())
柒七 2024-10-16 07:42:06

在 Racket 中,空列表被指定为:

'()

或:

null

我想说 null 可能是更惯用的两个,它与测试空列表的谓词 null? 一致。

请参阅 文档

In Racket the empty list is designated as either:

'()

or as:

null

I would say that null is probably the more idiomatic of the two, and it dovetails consistently with the predicate null?, which tests for the empty list.

See the docs.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文