【发布时间】:2018-04-26 00:11:35
【问题描述】:
我是 Prolog 的新手,想通过自己编写前缀函数来开始学习 [H|T] 的功能。 prefix 函数将所有可能的前缀返回到一个列表中,例如 L = [a,b,c] 将是 [], [a], [a,b] 和 [a,b,c]。我对我自己的 Prolog 函数如何能够返回这么多不同的解决方案感到困惑。我让它拆分列表的头部和尾部,并将头部附加到我的新列表中,这将是返回的不同前缀。这是我到目前为止所拥有的,但我认为我过于简单化了,并且不知道如何递归调用它来获得所有不同的可能性。
myPrefix([],[]).
myPrefix([H|T],List) :- myPrefix(T, [H|List]).
我查看了很多其他答案,但那些只是处理从列表中取出第一个元素,而不是列出所有可能的前缀。任何关于如何从这里开始的建议或关于列表操作功能的头部和尾部如何工作的更多解释都值得赞赏。
【问题讨论】:
标签: prolog