我能够从列表中删除该元素,但我不知道如何在Scheme中编写一个函数来用另一个元素替换列表中所有出现的元素。 任何帮助将不胜感激。
答案 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
更简洁地执行此操作。