Я работаю над Prolog, и я наткнулся на нижеприведенную программу. Когда я запускаю эту программу с запросом, например: mysterious([2,3,4,5,6,7,8],L)
. Он дал мне ответ 20. Я не понял поток получения этого результата. может ли кто-нибудь помочь мне понять этот код? ... Как он дает ответ 20 для вышеупомянутого запроса?Объясните, что делает эта программа пролога?
mysterious([],0).
mysterious([X],X).
mysterious([X,Y|Xs], Res) :-
mysterious(Xs, Res1),
Res is X + Res1.
Почему бы вам не попытаться проследить выполнение? Вызовите '? - trace.', а затем снова запустите запрос, пройдя через него. –
Также попробуйте спросить 'таинственный ([], L)', 'mysterious ([8], L)', 'таинственный ([7,8], L)', 'таинственный ([6,7,8], L) и т. Д. – SQB