gpt4 book ai didi

prolog - 转换一个句子会产生一个无限循环——但如何转换?

转载 作者:行者123 更新时间:2023-12-01 10:05:51 27 4
gpt4 key购买 nike

我无法弄清楚这是哪里出了问题。请注意,我对 Prolog 非常陌生,我确定我遗漏了一些东西 - 只是不知道那可能是什么。有人可以帮我吗?

谢谢,这是我的代码:

printSentence([]).   
printSentence([W|[]]) :-
write(W),
write('.'),
nl.
printSentence([W|R]) :-
write(W),
write(' '),
printSentence(R).

transform([], Result).
transform([Word|Rest], Result) :-
replace(Word, Replacement),
append(Result, Replacement, NewResult),
transform(Rest, NewResult).

replace(my, your).
replace(i, you).
replace(you, me).
replace(am, are).
replace(Word, Word).

test :-
X = [you, are, my, only, hope],
transform(X, Result),
printSentence(Result).

最佳答案

这应该有效。请注意,您在 transform([],Result) 中有一个单例。此外, append 无法按照您尝试使用它的方式工作,但您通常走在正确的轨道上。

transform([], []).

transform([Word|Rest], [Replacement|RestOfResult]) :-
replace(Word, Replacement),
transform(Rest, RestOfResult).

关于prolog - 转换一个句子会产生一个无限循环——但如何转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10870187/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com