我需要split/4
在Prolog中创建一个函数,并且我很确定我已经关闭,但是有一个我看不到的错误。该程序将获取一个列表,一个键以及两个用于输出的列表(小和大)。如果列表中的元素小于键,则将其放小,否则将其放大。
因此,我现在拥有的是:
split([H|T], Key, [H|ST], Big) :- H < Key, split(T, Key, ST, Big).
split([H|T], Key, Small, [H|BT]) :- H >= Key, split(T, Key, Small, BT).
我可以假定列表和键都已实例化。如果有人指出我的错误,那就太好了!我想了解我做错了什么。
您唯一缺少的是基本情况。当前,当输入列表为空时,您的谓词无法执行任何操作,在处理完列表中的所有项目之后,任何输入最终都会发生这种情况。
split([], _, [], []).
只需添加此规则,它就会按预期工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句