2009년 9월 28일 월요일

Prolog - 프롤로그 프로그래밍 언어

프롤로그(prolog)란 프로그래밍 언어가 있다는대 엄청 신기한... 인공지능 개발에 쓰인다는대 간단할 로직들만 입력해주면 알아서 답을 찾아내는!

 

언어는 간단히 fact,rule,query로 이루어지는대

parent(A,B)    %A는 B의 부모이다, fact

female(B)       %B는 여자이다,fact

 

daughter(Y,X) :- parent(X,Y), female(Y)  %X가 Y의 부모이고 Y가 여자일때 Y는 X의 딸이다, rule

 

그리고 이렇게 물어보면

?-daughter(B,A)      %B가 A의 딸이냐?, query

그럼 답이 yes라고 나온단다....신기신기

 

아마 이 언어면 음... fact 조건과 rule이 모자란다면 쉽게 에러가 날수도 있겠지만...어쨌든 C처럼 복잡하게 안짜도 되고 확실히 편한거 같다.

 

아 참 그리고 rule에서 "_"가 나올수도 있다던대 아무거나를 뜻한단다, 얘를 들어서

mother(X) :- parent(X,_) , female(X)     %즉 X가 엄마인 조건은 X가 누군가의 부모고 X가 여자이다.

우리 교수님이 "_"는 "i don't care"를 뜻한다던대....아이 돈 케에에에에에~ 아이 돈 케에에에에에~ 가 생각나는 난 머지?ㅋ

 

그리고 list는 cons명령어로 쓸수 있다.

cons(X, cons(Y, cons(Z, ... cons(x, cons(y, cons(z, nil)))...)))

이 리스트는 X,Y,Z,...,x,y,z이렇게 흘러가겠지...마지막에 nil은 그냥 끝을 의미하는 변수

 

그럼 오늘은 여기까지~!

댓글 없음:

댓글 쓰기