方案将两个列表合并为一个

标签 scheme

如何设计一个将两个列表合并为一个列表的函数。 第一个列表的第一个元素将是新列表的第一个元素,第二个列表的第一个元素将是新列表的第二个元素 (a,b,c,d,e,f) (g,h,i) 将是 (a,g,b,h,c,i,d,e,f,)

最佳答案

这是R6RS中的纯函数式递归实现

(define (merge l1 l2)
      (if (null? l1) l2
          (if (null? l2) l1
              (cons (car l1) (cons (car l2) (merge (cdr l1) (cdr l2)))))))

关于方案将两个列表合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12646888/

相关文章:

function - Racket : expected: procedure?

scheme - 如何在方案中设置默认或可选参数?

scheme - 如何从 Racket 中的 html 中提取元素?

recursion - 检查列表的反转是否与列表未更改相同?

scheme - 如何使用 MIT-Scheme 执行 .scm 脚本(在 REPL 之外)?

scheme - 在Scheme中编写flatten方法

java - 输入方案类型的正则表达式

scheme - (define (add x y) (+ x y)) 和 (define add (lambda (x y) (+ x y))) 有什么区别?

scheme - 如何在 Racket 中得到小数的余数?

scheme - Racket /方案: How to avoid repeating function call in cond