我对prolog真的很陌生,我必须编写一个谓词,它接受一个字符串和一个整数,并写出该字符串的与整数值一样多的字符。我怎样才能做到这一点 ?例子:
myPredicate('Hello',4). %will write out 'Hell'
myPredicate('New in prolog',6). %will write out 'New in'
我对prolog真的很陌生,我必须编写一个谓词,它接受一个字符串和一个整数,并写出该字符串的与整数值一样多的字符。我怎样才能做到这一点 ?例子:
myPredicate('Hello',4). %will write out 'Hell'
myPredicate('New in prolog',6). %will write out 'New in'
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.