2011-05-04 8 views
1

이 목록에서 술어를 만들고 싶습니다. 나는 [apple, orange] 목록을 가지고있다. 이 술어를 만들려고합니다 --->목록에서 술어 만들기

과일 (사과, 오렌지).

의견이 있으십니까?

답변

4

=.. (Univ라고도 함)을 사용하여 펑터가 목록의 머리어 인 용어로 목록을 변환 할 수 있습니다. 예를 들어 :

?- a(b) =.. [a, b]. 
true. 

당신은 assert/1를 사용하여 프롤로그 데이터베이스의 사실로 용어를 켤 수 있습니다.

귀하의 질문에 대한 해결책은 따라서이다 :

?- List = [apple, orange], Term =.. [fruits | List], assert(Term). 
List = [apple, orange], 
Term = fruits(apple, orange). 

당신은 지금 거기에 있는지 확인하기 위해 새로운 사실을 조회 할 수 있습니다

?- fruits(X, Y). 
X = apple, 
Y = orange. 
+0

당신이 코드를하시기 바랍니다 설명 할 수 있습니까? – selda

+0

@selda 그래, 몇 가지 설명을 추가했습니다. 이것은 매우 기본적인 것입니다. 모든 Prolog 서적에서 더 나은 설명을 찾을 수 있습니다. – Kaarel