我看到还有其他关于点“”的问题。我遵循了,但它对我的代码不起作用......它是代码的一部分,实现并不集中于这个符号。但输出应该包含这个点。当我输入两个列表 '(1 2 3) '(4 5) 时,我的预期输出 => (1 . 4) (2 . 5)
我设法得到 (1 4) (2 5) 只需要添加“。” 在中间。
Part of mycode
(cons (list (car lst1) (car lst2))
....
Run Code Online (Sandbox Code Playgroud)
为了 ”。” 符号,如果我尝试
**trial-1**
(cons '(list (car lst1) (car lst2)) ...)
Run Code Online (Sandbox Code Playgroud)
然后输出:((列表(car lst1)(car lst2))
**trail-2**
(cons (list (car lst1) '. (car lst2)) ...)
Run Code Online (Sandbox Code Playgroud)
然后..它说:非法使用“.”
使用点的规则是什么?有什么文件我可以看一下吗?顺便说一句,我正在使用 Racket(R5RS)。
当您构建不正确的cons-对或列表时,会显示点符号(意思是:它不以空列表结尾)。例如:
(cons 1 2)
=> (1 . 2) ; a cons-pair
(cons 1 (cons 2 (cons 3 4)))
=> '(1 2 3 . 4) ; an improper list
Run Code Online (Sandbox Code Playgroud)
例如,要显示问题中所示的输出,请尝试以下操作:
(define lst1 '(1 2 3))
(define lst2 '(4 5))
(list (cons (car lst1) (car lst2))
(cons (cadr lst1) (cadr lst2)))
=> '((1 . 4) (2 . 5))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7597 次 |
| 最近记录: |