このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1296387672/578
#  [1] 授業単元:プログラミング 
#  [2] 問題文(含コード&リンク): 
#  名前と年齢を入力し、SLISTで構造体で保持する。 
#  名前は入力される度にリストを検索し、まだ入力されていなければ年齢を入力しリストに格納する。 
#  名前が既に入力されていた(リストに同じ名前があった)場合は、新たに入力された年齢に更新する。 
#  名前に"END"と入力した場合は、リストをすべて表示して終了する。 
#   
#  ttp://caspar.hazymoon.jp/OpenBSD/sys/queue/slist.html 
#   

'名前と年齢を入力し、SLISTで構造体で保持する。名前は入力される度にリストを検索し、まだ入力されていなければ年齢を入力しリストに格納する。名前が既に入力されていた(リストに同じ名前があった)場合は、新たに入力された年齢に更新する。名前に"END"と入力した場合は、リストをすべて表示して終了する。'(List1,List2) :-
        名前と年齢を入力し(_名前,_年齢),
        'SLISTで構造体で保持する'(_名前,_年齢,List1,List3),
        '名前と年齢を入力し、SLISTで構造体で保持する。名前は入力される度にリストを検索し、まだ入力されていなければ年齢を入力しリストに格納する。名前が既に入力されていた(リストに同じ名前があった)場合は、新たに入力された年齢に更新する。名前に"END"と入力した場合は、リストをすべて表示して終了する。'(List3,List2).

'名前と年齢を入力し、SLISTで構造体で保持する。名前は入力される度にリストを検索し、まだ入力されていなければ年齢を入力しリストに格納する。名前が既に入力されていた(リストに同じ名前があった)場合は、新たに入力された年齢に更新する。名前に"END"と入力した場合は、リストをすべて表示して終了する。'(List,List) :-
        リストをすべて表示して終了する(List).



名前と年齢を入力し(_名前,_年齢) :-
        write('名前を入力してください : '),
        get_line(_名前),
        \+(_名前='END'),
        write('年齢を入力してください : '),
        get_integer(_年齢).

'SLISTで構造体で保持する'(_名前,_年齢,List1,List2) :-
        '名前は入力される度にリストを検索しまだ入力されていなければ年齢を入力しリストに格納する。名前が既に入力されていた(リストに同じ名前があった)場合は、新たに入力された年齢に更新する'(_名前,_年齢,List1,List2).

'名前は入力される度にリストを検索しまだ入力されていなければ年齢を入力しリストに格納する。名前が既に入力されていた(リストに同じ名前があった)場合は、新たに入力された年齢に更新する'(_名前,_年齢,List1,List2) :-
        'まだ入力されていなければ年齢を入力しリストに格納する'(_名前,_年齢,List1,List2),!.
'名前は入力される度にリストを検索しまだ入力されていなければ年齢を入力しリストに格納する。名前が既に入力されていた(リストに同じ名前があった)場合は、新たに入力された年齢に更新する'(_名前,_年齢,List1,List2) :-
        '名前が既に入力されていた(リストに同じ名前があった)場合は、新たに入力された年齢に更新する'(_名前,_年齢,List1,List2),!.

'まだ入力されていなければ年齢を入力しリストに格納する'(_名前,_年齢,List1,[[_名前,_年齢]|List1]) :-
        \+(append(L0,[[_名前,_]|R],List1)),!.

'名前が既に入力されていた(リストに同じ名前があった)場合は、新たに入力された年齢に更新する'(_名前,_年齢,List1,List2) :-
        append(L0,[[_名前,_]|R],List1)),
        append(L0,[[_名前,_年齢]|R],List2).

リストをすべて表示して終了する(List) :-
        write('名前     | 年齢\n'),
        append(_,[[_名前,_年齢]|R],List),
        write_formatted('%8s | %t\n',[_名前,_年齢]),
        R = [].