いろんな言語で宿題ス ..
[2ch|▼Menu]
110:デフォルトの名無しさん
09/12/26 16:42:37
>>109
% Prolog (その一) 一般化できる部分のみ。集約データの収集/3,_述語/_アリティに対応する述語定義
% データベースの項目に関する情報述語と集約項目に関する述語が別に必要。

集約述語の生成(_述語/_アリティ,_集約述語ならび) :-
  findall(_集約キー,集約キーの生成(_述語/_アリティ,_集約キー),_集約キーならび),
  集約述語の生成(_述語/_アリティ,_集約キーならび,_集約述語ならび).

集約述語の生成(_述語/_アリティ,[],[]) :- !.
集約述語の生成(_述語/_アリティ,[_集約キー|R1],[_集約述語名/_アリティ2|R2]) :-
  concat_atom(_集約キー,'・',_集約述語名),
  length([_|_集約キー],_アリティ2),
  集約データの収集(_述語/_アリティ,_集約キー,_集約データならび),
  集約データの定義(_集約述語名,_集約データならび),
  集約述語の生成(_述語/_アリティ,R1,R2).

集約データの定義(_,[]) :- !.
集約データの定義(_集約述語名,[_集約データ|R]) :-
  P =.. [_集約述語名|_集約データ],
  assertz(P),
  集約データの定義(_集約述語名,R).

集約キーの生成(_述語/_アリティ,_集約キー) :-
  集約項目(_述語/_アリティ,L),
  append(L1,_,L),
  \+(L1=[]).


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4401日前に更新/462 KB
担当:undef