[View] [Edit] [Attachments] [History] [Home] [Changes] [Search] [Help]
Squeak Prolog/V
Squeak Prolog/V
http://minnow.cc.gatech.edu/squeak/1000
SqeuakMap から簡単にインストール出来る Prolog (Prolog/V) です。Squeak から利用しやすい工夫がしてあります。
起動と使い方。
PrologWorkspace open で Prolog 用のワークスペースが開きます。プログラム上で利用する場合は、
LCompiler evaluate: 'Prolog の文'
と言う使い方も出来ます。結果は配列で返って来ます。
Family new :? father(x,y)
普通の Prolog とは違い、規則はクラスに関係付けられています。上の文の Family new :? がクラスの指定で、質問の際にはこのようにクラスを必要とします。規則を新しく定義をするには、Smalltalk のメソッドとして定義します。また、database という機能を使って動的に規則を生成する事も出来ます。
例えば、ジャンケンのルールを Prolog/V で表現すれば以下の感じ(file in 形式で冗長ですが)。
'From Squeak3.6gamma of ''11 September 2003'' [latest update: #5421] on 25 September 2003 at 2:33:29 pm'!
Prolog subclass: #Janken
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Prolog'!
!Janken methodsFor: 'as yet unclassified' stamp: 'tak 9/25/2003 14:31'!
draw(x, x).! !
!Janken methodsFor: 'as yet unclassified' stamp: 'tak 9/25/2003 14:22'!
lose(x, y) :- win(y, x).! !
!Janken methodsFor: 'as yet unclassified' stamp: 'tak 9/25/2003 14:21'!
win('pa', 'gu').
win('gu', 'choki').
win('choki', 'pa').
! !
これでパーに勝つ手を求めるには下のようにします。
Janken new :? win(x, 'pa')
Link to this Page
- SqueakTips last edited on 9 November 2004 at 5:00:48 pm by 192.168.0.8