>>247
% Prolog 例によって、配列をリストに変更して解釈。

'data.txtに書かれている氏名と成績を読み込み、氏名を2次元配列、成績を1次元配列に格納する' :-
    get_split_lines('data.txt',[' '],LL),
    '氏名を2次元配列、成績を1次元配列に格納する'(LL,_氏名ならび,_成績ならび
),
    氏名ならび・成績ならびを格納する(_氏名ならび,_成績ならび).

'氏名を2次元配列、成績を1次元配列に格納する'([],[],[]).
'氏名を2次元配列、成績を1次元配列に格納する'([[_氏名,_成績]|R1],[_氏名文字ならび|R2],[_成績|R3]) :-
    atom_chars(_氏名,_氏名文字ならび),
    '氏名を2次元配列、成績を1次元配列に格納する'(R1,R2,R3).

氏名ならび・成績ならびを格納する(_氏名ならび,_成績ならび) :-
    assertz(氏名ならび(_氏名ならび)),
    assertz(成績ならび(_成績ならび)).