나는 프롤로그에서 functor inbuilt를 쓰려고 노력했다. 내가 functor1
과 같은 쿼리를 실행하면 내가이 버전의 Functor (Prolog)에서 잘못된 점은 무엇입니까?
?- functor1(Term,f,6).
ERROR: =../2: Arguments are not sufficiently instantiated
Exception: (8) _G180=..[f|_G248] ? creep
무엇이 잘못 되었나요 예외가 여기에
lenlist(L,N) :- lenlist(L,0,N).
lenlist([],N,N).
lenlist([_|T],P,N) :- P1 is P+1 , lenlist(T,P1,N).
functor1(Term,F,N) :- Term =.. [F|Args] , lenlist(Args,N).
이
?- functor(Term,f,6).
Term = f(_G247, _G248, _G249, _G250, _G251, _G252)
이제 프롤로그 붙박이 펑의 샘플 실행이다 : 이것은 내 버전 내가 작성한 functor1
기능이 있습니까?
functor1 (Term, F, N) : 길이 (Args, N), Term = .. [F | Args],! --- This works –
글쎄 나는 잘라 내기를해야했다. 다른 솔루션을 찾으러 가지 않기 때문이다. 그러나 더 이상 해결책을 강요 할 때 이상적으로는 "no"로 돌아 가야한다. 자르지 않으면 스택 밖으로 나옵니다 –