IF Computer > IF/Prolog > Manuals > IF/Prolog V4.1 マニュアル > IF/Prolog V4.1 レファレンスマニュアル > #clause, #clause_term

#clause, #clause_term

IF/Prolog by Siemens
MINERVA superseeded IF/Prolog. Please see http://www.ifcomputer.co.jp/MINERVA for details.

We discontinued to sell IF/Prolog Dec 31. 2003. Dedicated technical support for IF/Prolog ended Dec 31 2008. This site is maintained as a community service only.

#clause(?ヘッド) #clause(?ヘッド,-ボディ) #clause_term(?ヘッド,-ボディ,-変数リスト)

"節(clause)"という表現は、事実あるいはル−ルを表します。節はコンディッショナル":-"の左に位置するヘッドと、右に位置するボディから成ります(ヘッド :- ボディ)。ヘッドは1つの項から成っており、ボディはル−ルの呼び出しを組み合わせたものです。ボディがない場合には、ボディが"true"と宣言されたものと等価です。"単位節(unit clause)"は、事実の同義語です。

clause/2は、デ−タベ−ス上でヘッドがヘッドに一致する節を捜します。「ヘッド」は、必ず変数以外の項でなければなりません。これらの節の「ヘッド」と「ボディ」は、それぞれ「ヘッド」と「ボディ」に単一化されます。節が単位節ならば、「ボディ」は"true"に単一化されます。clause/2は、「ヘッド」に一致するすべての節を見つけるためにバックトラックを行います。

clause/1は、データベース中の事実を探します。セミ/フルコンパイルされた述語の節は、見ることができません。

「ヘッド」あるいは「ボディ」が変数を含んでいて、変数名がその述語と共に格納されている場合に、clause_term/3は、「変数リスト」に変数名のリストを返します。

?- {user}. | today(88,1,26). % 事実、あるいは単位節 | date(88,Month,Day) :- % 規則 Day >= 1, Day =< 31, Month >= 1, Month =< 12. | end_of_file.

yes ?- clause(today(L,M,N),B), clause(date(L,M,N),O).

L = 88 M = 1 N = 26 B = true O = 26 >= 1, 26 <= 31, 1 >= 1, 1 <= 12 yes ?- _

structure_expected 「ヘッド」は複合項でもアトムでもない。 not_modifiable 「ヘッド」は、変更可能な述語を参照せねばなりません。

document: http://www.ifcomputer.co.jp/IFProlog/Manuals/v4.1/reference/clause/print_en.html
published 2012/5/21 update 1995/11/6 (c) 1996-2009 IF Computer Japan
IF Computer 5-28-2 Sendagi, Bunkyo-ku Tel +81-3-5814-3352 start (AT) ifcomputer.com
Customer Support Tokyo 113-0022 Japan   http://www.ifcomputer.com
Back> managed with ubiCMS