При анализе списка строк текущие правила позволяют запятой находиться в конце предложения и не позволяют запятой быть между словами, что, очевидно, неверно. Как изменить текущие правила?Как изменить правила анализа объявлений в Prolog?
complexsentence --> [] ; simplesentence, complexsentence;
simplesentence, delimiter, complexsentence.
simplesentence --> noun, verb.
delimiter --> [,].
noun --> [sun].
verb --> [shines].
% TEST: phrase(complexsentence, [sun,shines]). %must be TRUE
% TEST: phrase(complexsentence, [sun,',',shines]). %must be TRUE
% TEST: phrase(complexsentence, [sun,shines,',']). %must be FALSE
Update: Пытался решить, как это. Он работает
complexsentence --> [] ; simplesentence,complexsentence.
simplesentence --> noun,verb;
noun,verb,delimiter,noun;
noun,verb,delimiter,noun,verb.
delimiter -->[,].
noun-->[sun].
verb-->[shines].
% TEST: phrase(complexsentence, [sun,shines]). % TRUE
% TEST: phrase(complexsentence, [sun,',',shines]). % FALSE
% TEST: phrase(complexsentence, [sun,shines,',']). %FALSE
Почему это второй случай «должен быть ИСТИННЫМ»? И почему «[]« действительный «complexsentence»? – lurker
Ему нужно, чтобы получить решения, но было бы более интуитивным (я думаю) сказать «простоту» вместо '[ ] '. –
@ DanielLyons да, это то, о чем я думал, «complexsentence -> simplesentence.' имел бы больше смысла, чем« complexsentence »-> [] .' – lurker