Prolog 程序设计中的过程算法表达
1. 切割操作(Cut)
在 Prolog 中, write
是确定性的,因此切割操作( !
)写在 write
调用之前或之后并无区别,被切割掉的备选方案是相同的。不过,为了提高程序的可读性,建议尽早进行切割操作,即一旦确定不需要备选方案,就立即执行切割。
示例代码
% 示例:切割操作与 write 的关系
% 这里的切割位置不影响结果
example_cut1 :- write('Hello'), !.
example_cut2 :- !, write('World').
练习
- 练习 4.3.1 :使用一个或多个切割操作,提高
absval
函数的效率,并说明切割操作避免了哪些不必要的计算。 - 练习 4.3.2 :使用一个或多个切割操作,提高
classify
函数的效率。 - 练习 4.3.3 :考虑如下定义的谓词
my_cut
:
my_cut :- !.
给定知识库: