我是prolog的新手,我必须编写一个谓词,它包含一个字符串和一个整数,并写出该字符串的字符数与整数值一样多。我怎样才能做到这一点 ? 示例:
myPredicate('Hello',4). %will write out 'Hell'
myPredicate('New in prolog',6). %will write out 'New in'
答案 0 :(得分:1)
format它是执行格式化输出的适当谓词,但它不提供值的截断。然后你可以定义一个服务谓词,如print_n / 2:
6 ?- [user].
|: print_n(W,N) :- sub_atom(W,0,N,_,S),write(S).
% user://1 compiled 0.04 sec, 2 clauses
true.
7 ?- print_n(hello,3).
hel
true.
然后format / 2可以通过@:
调用您的服务谓词8 ?- format('hello ~@~n', [print_n(world,3)]).
hello wor
true.