预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

3的阶乘: predicates factorial(unsigned,real) clauses factorial(1,1):-!. factorial(X,FactX):- Y=X-1, factorial(Y,FactY), FactX=X*FactY. goal X=3, factorial(X,Y). 输出表 domains list=integer* predicates write_a_list(list) clauses write_a_list([]). write_a_list([H|T]):- write(H),nl, write_a_list(T). goal write_a_list([1,2,3]). 统计表元素个数 domains list=integer* predicates length_of(list,integer) clauses length_of([],0). length_of([_|T],L):- length_of(T,TailLength), L=TailLength+1. goal length_of([1,2,3],L). 每个元素加1 domains list=integer* predicates add1(list,list) clauses add1([],[]). add1([Head|Tail],[Head1|Tail1]):-Head1=Head+1, add1(Tail,Tail1). goal add1([1,2,3,4],NewList). 删除整数表中的负数 domains list=integer* predicates discard_negatives(list,list) clauses discard_negatives([],[]). discard_negatives([H|T],ProcessedTail):- H<0,!, discard_negatives(T,ProcessedTail). discard_negatives([H|T],[H|ProcessedTail]):- discard_negatives(T,ProcessedTail). goaldiscard_negatives([2,-45,3,468],X). 判断表成员 domains namelist=name* name=symbol predicates member(name,namelist) clauses member(Name,[Name|_]). member(Name,[_|Tail]):- member(Name,Tail). goal member(susan,[ian,susan,john]). 合并表 domains integerlist=integer* predicates append(integerlist,integerlist,integerlist) clauses append([],List,List). append([H|L1],List2,[H|L3]):- append(L1,List2,L3). goal append([1,2,3],[5,6],L). 输出表中元素 domains integerlist=integer* namelist=symbol* predicates writelist(integerlist) writelist(namelist) clauses writelist([]). writelist([H|T]):- write(H,""), writelist(T). goalwritelist([1,2,3,4]),nl. 找出一个数字链表的最大数值。 domains/*领域段*/ list=integer*. predicates/*谓词段*/ max(list,integer) clauses/*子句段,存放所有的事实和规则*/ max([H],H). max([H|T],H):-max(T,X),H>=X. max([H|T],X):-max(T,X),H<X. 动态生成关于N个学生(包括学号、姓名、出生年月日、成绩)的内部事实数据库,并计算学生成绩的平均分。 domains num=symbol name=symbol birthday=date(integer,integer,integer) score=real list=score* facts stud(num,name,birthday,score) predicates run add_fact(integer) sumlist(list,real) clauses