|
|
1
2
结果是
与Jan_s解决方案一样,它不评估
注意,正如简所说的,
软切割
控制结构,
另外,我保留了我的第一个答案,因为它更便于携带,并举例说明了一种模式,可能对其他问题有用。 |
|
|
2
3
希望我能理解你的问题描述:
这个
附笔。 根据您在评论中描述的更改进行更新,使其适用于您的案例。如果你不想收集所有的解决方案,有一些非便携式黑客只会找到给定数量的解决方案。 |
|
|
3
3
还有另一种可能 *->/2 ,它是->/2的变体,不会终止条件的选择点。现在我们不在了,我们想杀了一个 老年人 选择点。我不知道是否有prolog系统可以这样做。大多数人都有杀死所有选择点的规定,因为有些标记,但我不知道有一个杀死一个特定的标记。因此,我们必须插入一些代码,以有条件地停止进一步的处理。这将导致:
这是完全不可移植的,尽管许多系统都有*->(有时命名为if/3),并且许多系统有某种形式的不可回溯分配,而如果您不顾一切,则可以使用断言/收回。 在线查看: SWISH
保罗的答案当然更便于携带。不过,这应该更快,而且不能评估
|