このディレクトリの索引

# # 例えば、会員番号、氏名のようなテーブルがあるとします。 # # 1. 田中太郎 # 2. 山田次郎 # 3. 鈴木花子 # 4. 田中太郎 # # このように重複会員がいた場合、1と4を同じものとして、4の会員番号を1にする操作を # 一行で書くにはどのように書いたら良いでしょうか? # 同姓同名の場合、最も若い番号を会員番号とするとします # :- dynamic(テーブル/2). テーブル(1,田中太郎). テーブル(2,山田次郎). テーブル(3,鈴木花子). テーブル(4,田中太郎). '例えば、会員番号、氏名のようなテーブルがあるとします。 1. 田中太郎 2. 山田次郎 3. 鈴木花子 4. 田中太郎 このように重複会員がいた場合、1と4を同じものとして、4の会員番号を1にする操作を 一行で書くにはどのように書いたら良いでしょうか? 同姓同名の場合、最も若い番号を会員番号とするとします' :- '同姓同名の場合、最も若い番号を会員番号とする、最も若い会員番号以外の節を削除する。同姓同名が居ない場合は対象としない。'. '同姓同名の場合、最も若い番号を会員番号とする、最も若い会員番号以外の節を削除する。同姓同名が居ない場合は対象としない。' :- forall(テーブル(_会員番号,_氏名), '同姓同名の場合、最も若い番号を会員番号とする、最も若い会員番号以外の節を削除する。同姓同名が居ない場合は対象としない。'(_会員番号,_氏名)). '同姓同名の場合、最も若い番号を会員番号とする、最も若い会員番号以外の節を削除する。同姓同名が居ない場合は対象としない。'(_会員番号,_氏名) :- '同姓同名が居て、より若い会員番号が存在する時は節を削除する。'(_会員番号,_氏名),!. '同姓同名の場合、最も若い番号を会員番号とする、最も若い会員番号以外の節を削除する。同姓同名が居ない場合は対象としない。'(_,_). '同姓同名が居て、より若い会員番号が存在する時は節を削除する。'(_会員番号,_氏名) :- '同姓同名が居て、より若い会員番号が存在する時は'(_会員番号,_氏名), '節を削除する。'(_会員番号,_氏名). '同姓同名が居て、より若い会員番号が存在する時は'(_会員番号,_氏名) :- テーブル(_会員番号_1,_氏名), _会員番号_1 @< _会員番号. '節を削除する。'(_会員番号,_氏名) :- retract(テーブル(_会員番号,_氏名)).