我正在循环查看一系列句子并尝试验证它们是否在语法上正确。句子是单词列表。看起来像这样:
verifySen([]).
verifySen([H|T]) :-
sentence(H,[]),
verifySen(T).
其中,为verifySen提供列表清单。 sentence(H,[])
尝试检查某些内容是否有效。这就是问题所在。我目前的DCG看起来像这样:
sentence --> subject_phrase, verb_phrase, {write('this IS a valid sentence'), nl}.
sentence --> anything, {write('this is NOT a valid sentence'),nl}.
anything --> [_], anything.
...
代码适用用于 某个有效句子,但失败并在某些内容无效时产生错误。我得到stream '<stream>(000..random numbers...)' does not exist.
有人可以提供建议吗?
答案 0 :(得分:0)
我认为你错过了// 0的基本情况,所以当句子无效时,它将直到流的末尾然后失败。应该是
anything --> [_], anything.
anything --> [].