【发布时间】:2015-10-12 15:33:40
【问题描述】:
我正在尝试创建一个深度二元谓词text/2,它将处理一个列表并用原子number 替换列表中的每个数字。
例子:
?- text([a,[[13]],b,14,c(5),8], Xs).
Xs = [a,[[number]],b,number,c(5),number].
解决方案:
我尝试如下做,但得到了
警告:尝试在
SGETTOK中读取文件末尾
代码是:
toNumber(In,number) :-
number(In),
!.
toNumber(In,In).
maplist(_,[],[]).
maplist(Pred,[InListHead|InListTail],[OutListHead|OutListTail]) :-
Term = [Pred,InListHead,OutListHead],
call(Term),
maplist(Pred,InListHead,OutListHEad).
text(InListHead,OutListHead) :-
maplist(toNumber,InListHead,OutListHead).
【问题讨论】: