Scheme语言为每个列表元素添加一个

时间:2017-09-19 04:40:06

标签: scheme

问题在于: 定义一个函数addOne,它接受一个数字列表并返回一个列表,其中输入列表中的每个数字都增加1。例如,(addOne'(1 2 3 4))应该返回(2 3 4 5),并且(addOne'(2 4 6 8))应该返回(3 5 7 9)。

我是计划语言的新手,需要帮助。谢谢!

2 个答案:

答案 0 :(得分:0)

使用地图:

m

答案 1 :(得分:0)

我试着想出一个解决这个问题的简单方法。我创建了一个帮助程序plus1,它接受​​一个数字并返回该数字的总和1:

 (define (plus1 x)
   (+ x 1))

然后,我使用addOne定义了map

(define (addOne lst)
  (map plus1 lst))

基本上,map有两个参数:一个过程和一个列表。它将该过程应用于该列表的每个项目,然后根据该过程返回修改后的列表。在这种情况下,map的{​​{1}}部分只占用输入列表中的每个项目,将其加1,然后返回新列表。

请回答问题或反馈!