?- 'a##'. c153-711#
このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1320365280/711
#  [1] 授業単元:リスト構造 
#  [2] 問題文(含コード&リンク): 
#  malloc関数とリスト構造を使い、ファイルから二行の多桁整数を読み取る。 
#  それを4桁ずつリスト構造に格納し、加算を行うプログラムを作れ。 
#   
#  口頭で出題された問題なので、おかしい部分があったらすみません。 
#   

'ファイルから二行の多桁整数を読み取る。それを4桁ずつリスト構造に格納し、加算を行う'(_ファイル名,_4桁ずつリストの加算値) :-
        'ファイルから二行の多桁整数を読み取る'(_ファイル名,_多桁整数),
        'それを4桁ずつリスト構造に格納し'(_多桁整数,_4桁ずつリスト),
        加算を行う(_4桁ずつリスト,_加算値).

'ファイルから二行の多桁整数を読み取る'(_ファイル名,_多桁整数) :-
        get_lines(_ファイル名,[_第一行,_第二行|_]),
        concat_atom([_第一行,_第二行],_結合した文字列),
        atom_to_term(_結合した文字列,_多桁整数,_).

'それを4桁ずつリスト構造に格納し'(_多桁整数,_4桁ずつリスト) :-
        'それを4桁ずつリスト構造に格納し'(_多桁整数,[],_4桁ずつリスト).

'それを4桁ずつリスト構造に格納し'(0,L,L) :- !.
'それを4桁ずつリスト構造に格納し'(N,L1,L) :-
        M is N mod 10000,
        N_1 is N // 10000,
        'それを4桁ずつリスト構造に格納し'(N_1,[M|L1],L).

加算を行う([],0).
加算を行う([N|R],S) :-
        加算を行う(R,S_1),
        S is N + S_1.