編寫一個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