0
我試圖在Prolog中實現beta縮減,DCG和詞典。 當我試圖編譯時,它給了我一個語法錯誤,它是運算符@
。 我該如何解決它?lambda微積分符號語法錯誤序言
beta(Exp,Exp):- atomic(Exp), !. beta(lbd(V,F_body)@Exp,Result):- !, substitute(V,Exp,F_body,Result1), beta(Result1,Result). beta(Exp,Result):- Exp=..ExpList, maplist(beta,ExpList,ResultList), Result=..ResultList. s(SSem) --> np(NPSem), vp(VPSem),{var_replace(NPSem,NPSem1),beta([email protected],SSem)}. vp(VPSem) --> v(VSem), np(NPSem),{var_replace(VSem,VSem1),beta([email protected],VPSem)}. np(lbd(p,[email protected])) --> [john]. np(lbd(p,[email protected])) --> [mary]. v(lbd(s,lbd(x,[email protected](y,likes(x,y))))) --> [likes].
明白了。謝謝!! ;) – Britishgoat