【发布时间】:2021-02-27 23:11:43
【问题描述】:
在 Racket 博士中,我将如何编写一个使用 2 个列表(每个列表包含 2 个列表元素(第一个是字符串,第二个是数字))并生成所有第二个元素的列表的函数?
如果这个问题很难理解,这里有一个例子:
(second-separator
(list (list "JG" 851) (list "Gh" 90))
(list (list "hb" 34) (list "vc" 45) (list "kl" 462)))
应该产生:
(list 851 90 34 45 462)
到目前为止,这是我的代码:
(define (second-separator los1 los2)
(cond
[(and (empty? los1) (empty? los2)) empty]
[(empty? los1) (cons (second (first los2))
(second-separator los1 (rest los2)))]
[(empty? los2) (cons (second (first los1))
(second-separator (rest los1) los2))]
[else (list (second (first los1))
(second (first los2))
(second-separator (rest los1) (rest los2)))]))
我的代码适用于除else 之外的所有情况。
如果我插入上面给出的示例,我最终会得到
(list 851 34 (list 90 45 (list 462)))
而不是
(list 851 90 34 45 462)
我该如何解决这个问题?非常感谢您的帮助。
【问题讨论】: