- 430 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 13:00:37 ]
- >>429
integer_to_varlist(N,L) :- var(N),var(L). integer_to_varlist(A,A) :- not(var(A)),A=[]. integer_to_varlist(L1,L2) :- not(var(L1)), not(var(L2)), L1=[N|R1], L2=[L|R2], integer_to_varlist(N,L), integer_to_varlist(R1,R2). integer_to_varlist(N,L) :- not((var(N),var(L))),length(L,N). integer_to_varlist/2は複雑になったがこれはユーティリティだから 構わない。これで sum(N,M,Sum) :- integer_to_varlist([N,M,Sum],[L1,L2,L3]), sum_l(L1,L2,L3), integer_to_varlist([N,M,Sum],[L1,L2,L3]). とすっきりする。
|

|