嗨,我想知道你能不能帮我解决这个问题
从 Prolog 编程:编写 Prolog 脚本,用另一个给定元素替换列表中的任何给定元素。例如:
replace( 3, a,[1,2,3,4,3,5], [1,2,a,4,a,5])=true
提前谢谢了
最佳答案
在 Prolog 中,大多数列表处理是通过处理头部然后递归处理列表的其余部分来完成的。当然,您不能忘记基本情况,它是一个空列表。
用空列表中的任何内容替换任何内容再次导致空列表。如果链表的头部与要替换的元素相同,则替换它,否则,保持原样。在这两种情况下,递归处理列表的其余部分。从英文翻译成Prolog:
replace(_, _, [], []).
replace(O, R, [O|T], [R|T2]) :- replace(O, R, T, T2).
replace(O, R, [H|T], [H|T2]) :- H \= O, replace(O, R, T, T2).
关于list - 列表替换中的 Prolog 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5850937/