イフコンピュータ > MINERVA > マニュアル > レファレンス > 述語 > 項ベクター

項ベクター

MINERVA
ifcomputer logo
f
Expert Services on the Web

Minervaは、項を保存して読み出すためにいわゆる項ベクトルをサポートしています。

グローバル・データの管理をサポートするためには異なる種類の述語クラスが、存在します: Minervaデータベース(assert、retract、節、その他で処理します)、グローバル変数(set_global、get_global、その他で処理します)黒板(bb_put、bb_get、その他で処理されます)、そして、項ベクトルです。
項ベクトルを取り扱うために、以下の述語があります:

  • tv_create/1
  • tv_add/2
  • tv_size/2
  • tv_setsize/2
  • tv_set/3
  • tv_get/3
  • tv_list/2

項ベクトルは、一種の動的にリサイズ可能な項のアレイです。
項を項ベクトルから保存し読み出す前に、あなたは項ベクトルをつくらなければなりません。 これは、tv_create/1で行います。 項ベクトルは初めは空です。すなわち、サイズは0です。 述語tv_add/2またはtv_set/3で、項ベクトルに項を加えることができます。 tv_list/2を呼ぶことによって、ベクトルの全ての項を読み出すことができます。そして、tv_get/3で一つの項をアクセスすることができます。

例題

main(_) :-
    my_findall(I, for(1,I,10), Numbers).

my_findall(Term, Goal, Terms) :- % create a term vector ... tv_create(Vector), % .. . add a bulk of data to it ... retrieve_info(Vector, Term, Goal), % ... and collect all terms. tv_list(Vector, Terms).

retrieve_info(Vector, Term, Goal) :- % call a goal ... call(Goal), % ... store the information ... tv_add(Vector, Term), % ... and backtrack until there are no more results. fail. retrieve_info(_, _, _).

document: http://www.ifcomputer.co.jp/MINERVA/Manual/Reference/Predicates/termvector/print_jp.html
published 2008/10/6 update 2003/1/23 (c) 1996-2006 IF Computer Japan
IF Computer 〒113-0022 Tel 03-5814-3352 start (AT) ifcomputer.com
Customer Support 東京都文京区千駄木5-28-2   http://www.ifcomputer.co.jp
戻る> managed with ubiCMS