随机逻辑程序教程
1 引言
1.1 算法的逻辑程序
逻辑程序能以简洁、声明的方式描述计算机算法。以快速排序算法的Prolog表示为例:
quick_sort([],[]).
quick_sort([Head|Tail],Sorted) :-
partition(Tail,Head,BeforeHead,AfterHead),
quick_sort(BeforeHead,BeforeSorted),
quick_sort(AfterHead,AfterSorted),
append(BeforeSorted,[Head|AfterSorted],Sorted).
几行代码就抓住了算法的关键元素,展示了各部分之间的关系。
1.2 逻辑程序与非确定性
算法通常描述的是完全确定的一系列动作,但逻辑程序除了描述算法,还能描述涉及非确定性选择的过程。例如经典的逻辑程序:
member(Element,[Element|_]).
member(Element,[_|List]) :-
member(Element,List).
当目标为 :- member(X,[b,a,c]) 时,Prolog解释器会给出以下解:
X = b
X = a
X = c
超级会员免费看
订阅专栏 解锁全文
7654

被折叠的 条评论
为什么被折叠?



