【发布时间】:2015-11-22 06:15:59
【问题描述】:
我创建了一个序言程序,它给了一个数字列表,子列表将生成包含 N 个项目的子列表。有人告诉我,这可以通过 1 个事实和 2 个规则来完成。提示我选择了第一项,或者我没有选择,这让我感到困惑。我有基本情况和第一种情况,但我希望有人能帮助我理解第二种情况。
choose(1, [H], [H]).
choose(N, [H,TL], [H|ST]) :- choose(Less1, TL, ST), Less1 is N-1.
所以我的第三条规则我想选择列表中的第二项
choose(N, [F,S|T], [S|ST]) :- choose(Less1, T, ST), Less1 is N-1.
然而,我的最后一条规则是不平衡的,整体不起作用。任何想法都非常感谢!
【问题讨论】: