>>245
% Prolog

'行数と列数を読み込み,1 行目には1234567890…を列数の個数だけ,2 行目には2345678901…を列数の個数だけ,…と表示する' :-
    '行数と列数を読み込み(_行数,_列数),
    '1から始める数字循環を生成'(_行数,_列数,L),
    length(L1,_列数),
    append(L0,L2,L),
    行数分表示する(L0,L1,L2).

行数と列数を読み込み(_行数,_列数) :-
    write('行数を入力してください : '),get_integer(_行数),
    write('列数を入力してください : '),get_integer(_列数).

'1から始める数字循環を生成'(_行数,_列数,L) :-
    M is _行数 + _列数,
    '数字循環を生成'(1,M,L).

'数字循環を生成'(N,M,[]) :- N > M,!.
'数字循環を生成'(N,M,[X|R]) :- X is N mod 10,N2 is N + 1,'数字循環を生成'(N2,M,R).

行数分表示する(L0,L0,L2) :- !.
行数分表示する(L0,L1,L2) :-
    append(L1,_,L2),
    concat_atom(L1,S),
    write_formatted('%t\n',[S]),
    fail.