相关疑难解决方法(0)

为什么array.slice的行为(长度,n)不同

如果我有一个数组a:

  1. a[a.length]回报nil.好.
  2. a[a.length, x]回报[].好.
  3. a[a.length+x, y]回报nil.与2不一致.

虽然这种行为被记录在案,这似乎很奇怪.

任何人都可以解释这种设计背后的原因吗?

ruby arrays

24
推荐指数
2
解决办法
2804
查看次数

为什么使用cons创建一对两个列表会产生一个列表和两个元素?

我开始学习Scheme,主要是为了好玩,因为我之前从未使用过函数式语言.我之所以选择Scheme,是因为我想长时间阅读SICP.

无论如何,我目前正在学习列表,在此之前我了解了cons,car和cdr.还有一个例子可以创建一个带有缺点的列表列表,如下所示:

(cons (list 1 2) (list 3 4))
Run Code Online (Sandbox Code Playgroud)

结果列表是((1 2)3 4),这对我没有意义,我希望((1 2)(3 4))是结果(由两个列表组成的列表).为什么它表现得那样?我意识到,如果我要使用汽车,我会得到(1 2),而cdr我会得到(3 4)因为cdr总是返回"其余的",但我不明白为什么列表没有制作两个名单?

lisp scheme racket

5
推荐指数
1
解决办法
6150
查看次数

Lisp中的递归范围增加了一个时期?

(define ..
  (lambda (start stop)
    (cond ((> (add1 start) stop) (quote ()))
          ((eq? (add1 start) stop) (sub1 stop))
          (else (cons start (.. (add1 start) stop))))))
Run Code Online (Sandbox Code Playgroud)

我已经定义了一个简单的范围函数.目的是为了

(.. 1 5)  -->  (1 2 3 4)
Run Code Online (Sandbox Code Playgroud)

相反,我的元组中添加了一个奇怪的时期,我不明白为什么:

(.. 1 5)  -->  (1 2 3 . 4)
Run Code Online (Sandbox Code Playgroud)

我不明白为什么会这样.任何帮助表示赞赏

lisp scheme

5
推荐指数
1
解决办法
1937
查看次数

标签 统计

lisp ×2

scheme ×2

arrays ×1

racket ×1

ruby ×1