0
我正在使用Prolog中的應用程序,但我在猜測解決方案的其餘部分時被卡住了。 我設法做了第一個猜測這是一個6隨機顏色的列表。 我想告訴Prolog正確的猜測,然後它需要嘗試用新的顏色填充該列表中的空白。如何在序言中填寫列表中的空白
color(green).
color(red).
color(blue).
color(purple).
color(yellow).
color(brown).
color(black).
guessedcorrect(Correct, Guess) :-
Guess = Correct,
Guess = [S1, S2, S3, S4, S5, S6].
| ?- guessedcorrect([A, B, color(blue), D, E, F], Guess).
A = color(C)
B = color(G)
D = color(H)
E = color(I)
F = color(J)
Guess = [C,G,blue,H,I,J]
它爲什麼這樣做? 我希望它能爲每個變量都提供一種顏色,並保持藍色。例如。
Guess = [green, black, blue, blue, green, red]
然後我想告訴它它正確猜測哪種顏色。
guessedcorrect(A, black, blue, D, E, red).
我試圖用_替換變量,但它只是給了我顏色(_)。
'guessedcorrect/2'只是統一了它的參數,並確保他們有六個要素。我不明白你如何擁有你所說的輸出。此外,你沒有告訴是你期望擁有的行爲。 – coredump
我也不明白,我只是添加了預期的行爲。 – k0enf0rNL
'guessedcorrect'的定義報告S1,...,S6的未使用變量。行'| ?-'報告一個語法錯誤,'|'符號在這裏做什麼?另外,如果我輸入'guessedcorrect'([A,B,color(blue),D,E,F],Guess)。'的查詢,那麼沒有報告'X = color(Y)',只是'Guess = [ A,B,顏色(藍色),D,E,F] .'。如果你的問題太模糊,你將不會有很好的答案。 – coredump