我编写了一个非常简单的函数,给出了两个界之间的所有整数的列表。
然而,它似乎没有输出一个列表,而是给了我由嵌套的mcon单元格构成的数据结构。
我到底做错了什么?
#lang racket
(require rnrs/base-6)
(define (enumerate low high)
(if (> low high)
'()
(cons low
(enumerate (+ low 1) high))))
(enumerate 1 10)
;(mcons 1 (mcons 2 (mcons 3 (mcons 4 (mcons 5 (mcons 6 (mcons 7 (mcons 8 (mcons 9 (mcons 10))))))))))发布于 2014-05-01 16:31:02
因为在cons中定义的rnrs/base-6等价于Racket的mcons并创建了该类型的值(因为Scheme列表是可变的,而Racket列表不是可变的)。
发布于 2014-05-01 16:33:35
你在这里混合球拍和套路;如果你省略了require表单,那么它将是纯粹的拍子并返回
'(1 2 3 4 5 6 7 8 9 10)https://stackoverflow.com/questions/23411900
复制相似问题