このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1311089619/4
#  [1] 授業単元: プログラミング 
#  [2] 問題文(含コード&リンク):入力された特定の名前だけすべて削除する関数 void del_order(ORDER *node, char *name) を線形リストを用いて作成しなさい 
#   
#  

入力された特定の名前だけすべて削除する(_ならび,_特定の名前だけ削除されたならび) :-
        入力された特定の名前(_特定の名前),
        特定の名前とはキーのことだと考えよう(_特定の名前,_削除対象構造),
        入力された特定の名前だけすべて削除する(_削除対象構造,_ならび,_特定の名前だけ削除されたならび).

入力された特定の名前(_特定の名前) :-
        write('削除する名前を入力してください : '),
        get_line(_特定の名前).

特定の名前とはキーのことだと考えよう(_構造名,_特定の名前,_削除対象構造) :-
        findall(P,(
                    データ構造(_構造名,_,_キー項目),
                    P =.. [_構造名,_]),
                _データ構造ならび),
        名前構造のキー値が特定の名前(_特定の名前,_データ構造ならび).

名前構造のキー値が特定の名前(_,[],[]).
名前構造のキー値が特定の名前(_特定の名前,[名前(_)|R1],[名前(_特定の名前)|R2]) :-
        名前構造のキー値が特定の名前(_特定の名前,R1,R2),!.
名前構造のキー値が特定の名前(_特定の名前,[P|R1],[P|R2]) :-
        名前構造のキー値が特定の名前(_特定の名前,R1,R2),!.

入力された特定の名前だけすべて削除する(_,[],[]) :- !.
入力された特定の名前だけすべて削除する(_削除対象構造,[_削除対象構造|R1],R2) :-
        入力された特定の名前だけすべて削除する(_削除対象構造,R1,R2),!.
入力された特定の名前だけすべて削除する(_削除対象構造,[S|R1],[S|R2]) :-
        入力された特定の名前だけすべて削除する(_削除対象構造,R1,R2),!.