编写一个Prolog程序,在屏幕上打印出n * n个给定字符的正方形。调用你的谓词square/2。第一个参数应该是(正)整数。第二个参数是要打印的字符(任何Prolog术语)。例如:如何在prolog中打印n * n给定字符的平方?
?-square(5, '*').
*****
*****
*****
*****
*****
Yes
我刚开始学习这门语言。我这样做:
square(_,'_').
square(N, 'B') :-
N>0,
write(N*'B').
它根本不起作用。谁能帮我?
你能写一个字吗? '? - write_one('c')。'会打印'c'。你能写这个谓词吗? – 2013-05-13 16:21:15
'write(N *'B')'要求Prolog写出表达式'N *'B''。 Prolog不会评估'is/2'表达式之外的算术表达式,除此之外,没有办法通过这种方式重复其他原子来创建原子。更加努力。你可以做到,你只需要非常明确。 – 2013-05-13 17:25:46