1
任何人都可以帮我删除列表的最后'e'吗? 我有一个数据集:当它是单词最后删除'e'
lemma([c,h,a,s,e],[vb,t]).
lemma([e,a,t],[vb,t]).
lemma([l,i,k,e],[vb,t]).
lemma([d,i,e],[vb,i]).
lemma([s,n,e,e,z,e],[vb,i]).
,我的代码是:
q0(Token,[vb,_]) :-
lemma(Lemma,[vb,_]),
delete_last(Lemma,New_Lemma),
suffix(Sff),
append(New_Lemma,Sff,Token).
delete_last(Lemma,New_Lemma) :-
append(New_Lemma,[_],Lemma).
suffix([e,r]).
到目前为止我的代码删除列表,这是罚款,对于任何引理除了数据库的最后一个元素引理[e,a,t]。我如何让Prolog理解只在最终的单词时删除'e'?
任何建议,以帮助我开始这个问题将不胜感激。
delete_last(引理,New_Lemma): - 追加(New_Lemma,[E],引理)。 – CapelliC 2013-02-18 00:09:43
感谢您的建议,但我尝试插入[e]代替[_],但是这会产生另一个问题,因为代码不会生成[e,a,t,er],而是会留下[e,a,t ,e,r]不在可能的答案中。 – 2013-02-18 01:34:55