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地址:
# 持续吐槽
(1)不贴封面不让发布?