?- 'a##'. c161-829#
このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1354070278/829
#  [1] 授業単元:文字列 
#  [2] 問題文(含コード&リンク): 
#  1行最大80文字の空白を挟まない英字文字列を入力し、 
#  10文字続けて表示するごとに改行を挿入して表示するプログラムを作成しなさい 
#  

'1行最大80文字の空白を挟まない英字文字列を入力し、10文字続けて表示するごとに改行を挿入して表示する' :-
        '1行最大80文字の空白を挟まない英字文字列を入力し'(_英字文字列),
        '10文字続けて表示するごとに改行を挿入して表示する'(_英字文字列).

'1行最大80文字の空白を挟まない英字文字列を入力し'(_英字文字列) :-
        length(Ln,80),
        get_char(_文字),
        '1行最大80文字の空白を挟まない英字ならびを入力し'(Ln,_文字,_英字ならび),
        atom_chars(_英字文字列,_英字ならび).

'1行最大80文字の空白を挟まない英字ならびを入力し'([],_英字,[_英字]) :- !.
'1行最大80文字の空白を挟まない英字ならびを入力し'(_,'\n',[]) :- !.
'1行最大80文字の空白を挟まない英字ならびを入力し'([_|Ln],_文字,[A|R]) :-
        英字(_文字),
        get_char(_次の文字),
        '1行最大80文字の空白を挟まない英字ならびを入力し'(Ln,_次の文字,R),!.
'1行最大80文字の空白を挟まない英字ならびを入力し'([_|Ln],_,_英字ならび) :-
        get_char(_文字),
        '1行最大80文字の空白を挟まない英字ならびを入力し'([_|Ln],_文字,_英字ならび),!.

英字(_文字) :-
        _文字 @>= 'A',
        _文字 @=< 'Z',!.
英字(_文字) :-
        _文字 @>= 'a',
        _文字 @=< 'z'.

'10文字続けて表示するごとに改行を挿入して表示する'('') :- !.
'10文字続けて表示するごとに改行を挿入して表示する'(_英字文字列) :-
        '10文字続けて表示するごとに改行を挿入して'(_英字文字列,_残り文字列),
        '10文字続けて表示するごとに改行を挿入して表示する'(_残り文字列),!.
'10文字続けて表示するごとに改行を挿入して表示する'(_英字文字列) :-
        writef('%t\n',[_英字文字列]).

'10文字続けて表示するごとに改行を挿入して'(_英字文字列,_残り文字列) :-
        sub_atom(_英字文字列,0,10,R,_10文字),
        sub_atom(_英字文字列,10,R,0,_残り文字列),
        writef('%t',[_10文字]),
        write('\n').