λ演算和函数式设计语言.ppt

λ演算和函数式设计语言.ppt

ID:54742414

大小:222.50 KB

页数:8页

时间:2020-05-04

λ演算和函数式设计语言.ppt_第1页
λ演算和函数式设计语言.ppt_第2页
λ演算和函数式设计语言.ppt_第3页
λ演算和函数式设计语言.ppt_第4页
λ演算和函数式设计语言.ppt_第5页
资源描述:

《λ演算和函数式设计语言.ppt》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、λ演算与函数式设计语言有以下函数:Y=λg.((λf.g(ff))(λf.g(ff)))试证YF=F(YF)[F是任意函数]证明:YF=λg.((λf.g(ff))(λf.g(ff)))F=(λf.F(ff))(λf.F(ff))=F((λf.F(ff))(λf.F(ff)))=F(YF)2.利用λ规约法则将下式化到最简(λp.λq.λr.pqr)(λp.λq.pqr).=(λp.λq.λr.pqr)(λq.rq)[beta]=(λp.λq.λw.pqr)r[yita,alpha]=λq.λw.rqr[beta]=λw.rr[beta]=r

2、逻辑式设计语言设谓词good(X)表示X是好整数,谓词pow2(Y,Z)表示2的Y次方为Z.根据以下公理证明1020是个好整数.f1good(0)f2pow2(0,1)r3good(A-2)←good(A)r4good(A+2)←good(A)r5good(A*2)←good(A)r6good(A)←pow2(P,A),good(P)r7pow2(P+1,A*2)←pow2(P,A)s1good(2)f1和r4s2good(4)s1和r5s3good(8)f2和r5s4good(16)s3和r5s5good(32)s4和r5s6good(6

3、4)s5和r5s7good(128)s6和r5s8good(256)s7和r5s9good(512)s8和r5s10good(1024)s9和r5s11good(1022)s10和r3s12good(1020)s11和r32.用prolog写出完整的矩阵相乘程序.方法一:%第二个矩阵转置matrix_mul(X,Y,Z):-trans(Y,Y1),mmultiply(X,Y1,Z).%将矩阵分解成向量的list和向量,调用multiply做list与向量乘mmultiply([],_,[]).mmultiply([V0

4、Rest],V1,[

5、Result

6、Others]):-mmultiply(Rest,V1,Others),multiply(V1,V0,Result).multiply([],_,[]).multiply([V0

7、Rest],V1,[Result

8、Others]):-multiply(Rest,V1,Others),vmul(V1,V0,Result).%向量乘vmul([],[],0).vmul([H1

9、T1],[H2

10、T2],Result):-vmul(T1,T2,Newresult),ResultisH1*H2+Newresult.%矩阵转置trans(

11、[],[]).trans([[H

12、T]

13、Tail],[[H

14、NT]

15、NTail]):-firstCol(Tail,NT,Rest),trans(Rest,NRest),firstCol(NTail,T,NRest).firstCol([],[],[]).firstCol([[H

16、T

17、Tail],[H

18、Col],[T

19、Rows]):-firstCol(Tail,Col,Rows).domainsVt=integer*Ut=integer*predicateform_Vector(Vt,integer)form_Matrix(Ut,integ

20、er,integer)Matrinx_Multi(Ut,Ut,Ut)Vm_Multi((Vt,Ut,Ut)Vector_Multi((Vt,Vt,integer)Main_fun(Ut)Clavsesform_Vector([H

21、T],X):-0readist(H),form_Vector(T,X-1),form_Vector([],0).Matrix_Multi([H

22、T],L2,[H3

23、T3]):-Vm_Multi(H1,L2,H3).Matrix_Multi(T1,L2,T3).Matrix_Multi([],_,[]).Matrix

24、_Multi(_,[],[]).Vm_Multi(L1,[H2

25、T2],[H3

26、T3]):-Vector_Multi(L1,H2,H3).Vm_Multi(L1,T2,T3).Vm_Multi([],_,[]).Vm_Multi(_,[],[]).Vector_Multi([H1

27、T1,[H2

28、T2],[H3

29、T3]):-S1=H1*H2,Vector_Multi(T1,T2,S2):-S=S1+S2.Vector_Multi([],_,0).Mach_fun(l):-Readint(X,)Readint(Y),X>0,Y>0,form_M

30、atrix(L1,X,Y),form_Matrix(L2,X,Y),Matrix_Multi(L1,L2,L).方法二总结prolog中的cut用法,怎样是安全的,怎样是不安全的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。