나는 프롤로그에서 공부할 과제를 해결하는 방법은 무엇입니까?
Y=.(.(1,[],.(2,.(a,.(b,[])))).
Y
은 무엇입니까 프롤로그
나는 프롤로그에서 공부할 과제를 해결하는 방법은 무엇입니까?
Y=.(.(1,[],.(2,.(a,.(b,[])))).
Y
은 무엇입니까 프롤로그
오타가 있습니다. .
은 바이너리 펑터입니다. 항상 2 개의 인수 만 가져야합니다.
Y=.(.(1,[] , .(2, .(a, .(b,[])))).
Y=.(.(1,[]), .(2, .(a, .(b,[])))).
------- -------
-------------
-------------------
테스트 :
2 ?- Y = .(.(1,[]), .(2, .(a, .(b,[])))).
Y = [[1], 2, a, b].
Y
논리 변수들은 두 개의 서로 다른 통신 사업자가 아닌 하나의 운영자로 여기에 사용 된 바와 같은, =
및 .
사이의 공간이 있어야한다. Prolog는 그것을 풀지 않습니다. =/2
performs a unification 그리고 결과적으로 여기서 논리 변수 Y
은 값으로 인스턴스화됩니다. 여기서 복합 용어는 분명히 목록을 기술합니다.
논리 변수? 실제로 목록입니다 .. –
@EugeneSh. 'Y'는리스트로 인스턴스화되는 * 논리 변수 *입니다. – lurker
@lurker 논리 변수가 부울 변수를 참조하지 않습니까? –
'Y'는 변수입니다. 표현식은 Learn Prolog Now!에서 [9.2 Terms of a Special Notation] (http://www.learnprolognow.org/lpnpage.php?pagetype=html&pageid=lpn-htmlse38)을 참조하십시오! – lurker
왼쪽 괄호 5 개와 오른쪽 괄호 4 개만 있습니다. 또한 (최소한 SWI에서)'= .' 표기법은'=. '과 동일하지 않습니다. –