【스마트폰이 아닌】PC가 시작하는 Prolog 【동작 확인편】

【스마트폰이 아닌】PC가 시작하는 Prolog 【동작 확인편】



지난번 는, 나에게 Prolog 를 도입해 받았습니다.

동작을 확인합시다.



정말로 당신에게 Prolog 처리 시스템이 설치되었는가, 당신은 아직 의심하지 않을까요?

여기에서는 실제로 Prolog의 프로그램을 동작시켜서, 당신이 프로그램을 처리하고 있는 실감을 맛보려고 합시다.

모처럼이므로, 첫날 에 다룬 소스 코드를 움직여 보기로 합니다.
그러나 약간의 소스 코드가 변경되었습니다.

다음을 advent-example01.pro 등으로 파일명을 붙여 저장해 주세요.
% あなたとジャバ
ジャバ(あなた).

% わたしとジャバ
ジャバ(わたし).

% X とジャバならば、X は今すぐジャバをダウンロードすべきである
ジャバをダウンロード(X,今すぐ) :- ジャバ(X).

Windows에서 "메모장"을 사용하여 저장하려면 "문자 코드"를 「UTF-8」로 저장하십시오. 그렇지 않으면 나중에 작업할 때 오류가 발생합니다.


Linux 또는 Mac OS X 환경의 경우



다음과 같이 읽을 수 있습니다.
$ swipl -f advent-example01.pro

Windows의 경우



먼저 위에서 설명한 대로 Prolog를 시작하고 메뉴에서 「File」⇒「Consult...」를 선택하고 advent-example01.pro 파일을 선택하는 것이 좋습니다.



이 근처는 『 프로그램 시작 및 질문 자동 실행 - Prolog - Wikipedia 』도 참고가 될까 생각합니다.

대화 화면이 열리면



대화 화면이 열리면 다음과 같이 입력해 봅시다. 아래는 「あなたは今すぐジャバをダウンロードすべきか?」 라는 취지의 질문을 하고 있습니다.
?- ジャバをダウンロード(あなた,今すぐ).

?- 다음 문자를 입력합니다.
true 로 출력되었습니다. 이것은 "당신은 지금 자바를 다운로드해야한다"는 것을 의미합니다.
?- ジャバをダウンロード(あなた,今すぐ).
true.

그렇다면 다음 질문을 입력하면 어떨까요? 아래는 「今すぐジャバをダウンロードすべきは『誰』(X)か?」 라는 질문을 해보고 있습니다.
?- ジャバをダウンロード(X, 今すぐ).

우선은 다음과 같이 출력됩니다.
?- ジャバをダウンロード(X, 今すぐ).
X = あなた 

자, 여기에서 Prolog의 재미있는 곳입니다.

그대로 ; 이나 スペースバー 를 눌러 봅시다.
?- ジャバをダウンロード(X, 今すぐ).
X = あなた;
X = わたし.

그러면 위와 같이 「あなた」 이외의 「わたし」도 나타났습니다.

위는 「今すぐジャバをダウンロードすべきは『あなた』であり『わたし』である」 의미합니다.

다른 프로그래밍 언어라면 for나 foreach 등을 사용했을지도 모릅니다.
이것이 Prolog의 독특한 부분 중 하나입니다.

글쎄, 잘 했니?

Prolog의 단지 「동작 확인」으로서는 조금 길게 느껴졌을지도 모릅니다.

그래도, 만약 당신이 부족하다면 아래의 도전을 시도해보십시오.

만약 과제에 임하지 않았다고 해도, 그렇게 함으로써, 곧바로 거대한 운석이 지구에 떨어지거나 지축이 필요 이상으로 기울지 않게 됩니다. 기분이 좋을 때 괜찮습니다.

과제 1 : 다음과 같이 입력하면 어떤 결과가 출력됩니까?


?- ジャバをダウンロード(X, Y).

과제 2 : 아래와 같이 forall을 이용한 경우에는 어떤 결과가 출력됩니까?


?- forall(ジャバをダウンロード(X, 今すぐ), writeln(X)).

그럼 다음 Prolog Advent Calender에서 만나요.

좋은 웹페이지 즐겨찾기