Lisp 学习问题汇总

本文探讨了在Racket中遇到的与CommonLisp方言的差异,主要聚焦于Racket不识别nil作为空列表的问题。通过定义nil或者直接使用'()来解决这个问题。同时,提醒读者在学习不同Lisp方言时要注意语法的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Lisp是一个有方言的编程语言!Lisp是一个有方言的编程语言!Lisp是一个有方言的编程语言!

1、Racket 中无法识别 nil 为空列表:

> nil
; nil: undefined;
;  cannot reference an identifier before its definition
;   in module: top-level
; [,bt for context]

推测 Racket 中可能不支持这种表示解决方案:

(1)定义一个新的函数 nil 为空列表,并且不再修改:

(define nil '())
> (cons 'a (cons 'b nil))        ; 在调用时不会再报错
'(a b)

(2)不使用 nil ,直接使用 '()

> (cons 'a (cons 'b '()))
'(a b)

2、listp 函数无法使用

原因:学习的教程是Common Lisp的,但是使用的软件是Racket。

附Common Lisp地址:

downloads.html

# 持续吐槽

(1)不贴封面不让发布?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天狭鬼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值