Scheme中的一个函数,用于将列表中所有出现的元素替换为另一个元素

时间:2009-12-18 03:30:57

标签: scheme racket

我能够从列表中删除该元素,但我不知道如何在Scheme中编写一个函数来用另一个元素替换列表中所有出现的元素。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

简单版本的设计可能如下:

(define (replace old-element new-element list)
  ; if the list is null, just return null
  ; else if the car of the list is equal to old-element
  ;    run replace on the rest of the list, and cons new-element onto it
  ; else
  ;    run replace on the rest of the list, and cons the car onto it)

(我把细节留给你了,因为你要学习。)

请记住,在Scheme中,最自然的做事方式通常是从旧列表中逐个组合新的列表,而不是尝试一次一个地更改旧列表。

请注意,您也可以使用map更简洁地执行此操作。