小编Pop*_*ilo的帖子

如何在Racket(Scheme)中将列表拆分为大小均匀的块?

示例:
如何转换列表:
'(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)

列入名单:
'((0 1 2 3)(4 5 6 7)(8 9 10 11)(12 13 14 15))

根据目前为止提供的答案,这就是我提出的:

首先定义从列表的开头接受'n'个元素的函数:

(define (take-up-to n xs)
  (define (iter xs n taken)
    (cond
      [(or (zero? n) (empty? xs)) (reverse taken)]
      [else (iter (cdr xs) (- n 1) (cons (car xs) taken))]))
  (iter xs n '()))
Run Code Online (Sandbox Code Playgroud)

第二个是列表其余部分的类似功能:

(define (drop-up-to n xs)
  (define (iter xs n taken)
    (cond
      [(or (zero? n) …
Run Code Online (Sandbox Code Playgroud)

scheme list racket

5
推荐指数
2
解决办法
6647
查看次数

标签 统计

list ×1

racket ×1

scheme ×1