【发布时间】:2019-07-25 00:15:42
【问题描述】:
当我学习 Prolog 时,我遇到了一个问题。我正在尝试制作这样的功能
?- less_than([1,2,3,2,1,5],3,Y).
Y= [1,2,2,1]
因为我正在学习面向对象的编程,所以我对此堆积如山,无法弄清楚如何解决。 这是我的代码:
less_than([],X,Y).
less_than([H|T], X, [H1|T1]) :-
H<X, less_than(T,X,H).
而且,我尝试使用 findall:
less_than([],X,Y).
less_than([H|T],X,[H1|T1]) :-
findall(H, (H<X, less_than(T,X,Y)), Z).
我得到这个结果的地方:
Y = [_G2274|_G2275] for ?- less_than([1,2,3,4,5],3,X)
我知道它们是未知值,但如何在该列表中设置值?我尝试用和 H 更改 Y,但它不起作用。
我尝试调试它但没有成功,它不断崩溃,这只是如何为我解决它的合乎逻辑的解释。 Any1 有什么想法吗?
【问题讨论】:
标签: prolog