0

我正在尝试编写一个名为 unzip 的函数,该函数接受一个列表并评估两个列表的列表,其中两个列表具有原始列表的交替元素。

到目前为止,这就是我所拥有的:

(define (unzip lst)
    (if (null? lst)
        '()
        (...

这是它应该如何工作的:

(unzip '(1 a 2 b 3 c)) 应该评估为 ((1 2 3) (abc))

4

1 回答 1

1

你所拥有的是错误的轨道,对不起。(想想如果给定一个空输入,结果应该是什么。)类似于我对你上一个问题的回答,这是一个框架解决方案:

(define (unzip l)
  (if (null? l) ???
      (let ([next (unzip ???)])
        (list (cons ??? ???) ???))))

适当填写???s。(是的,我的解决方案经过测试,适用于奇数和偶数输入。)

于 2012-10-03T06:00:33.777 回答