在Prolog中,只使用两个参数是否可能将列表反转?例如:
这不是作业,我在阅读《七周七语言》一书时感到好奇。使用三个参数,你可以使用累加器(类似于函数式编程):
reverse_list(List, Reversed).
这不是作业,我在阅读《七周七语言》一书时感到好奇。使用三个参数,你可以使用累加器(类似于函数式编程):
reverseList([], Accumulator, Accumulator).
reverseList([Head|Tail], Accumulator, Solution) :-
reverseList(Tail, [Head|Accumulator], Solution).
reverseList(List, Solution) :-
reverseList(List, [], Solution).
澄清:我看到有一个使用append的解决方案,我想知道能否在不使用其他Prolog函数的情况下实现。