このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1335517816/633
#  [1] 授業単元:プログラミング(C) 
#  [2] 問題文(含コード&リンク):  
#  配列strに“HelloWorld!”を一文字ずつ配列要素に格納した後、 
#  最後の文字を任意数繰り返して表示するようにせよ。 
#  ※“HelloWorld!”の間には半角スペースは入力しないこと。 
#  参考:http://www.dotup.org/uploda/www.dotup.org3018993.png.html 
#  

'配列strに“HelloWorld!”を一文字ずつ配列要素に格納した後、最後の文字を任意数繰り返して表示する' :-
        '"HelloWorld!"を一文字ずつならびに格納した後'(L),
        最後の文字を任意数繰り返して表示する(L),

'"HelloWorld!"を一文字ずつならびに格納した後'(L) :-
        write('正確に、"HelloWorld!"と入力しなさい : '),
        findall(_文字,(
                    repeat,
                    get_char(_文字),
                    (   改行またはEOF入力で終了する,!,fail;
                        true)),
                L).

改行またはEOF入力で終了する(_) :-
        at_end_of_stream(user_input),!.
改行またはEOF入力で終了する('\n').

最後の文字を任意数繰り返して表示する(L) :-
        最後の文字(L,_最後の文字),
        任意数(_任意数),
        繰り返して表示する(_任意数,_最後の文字).

任意数(_任意数) :-
        write('何回繰り返しますか : '),
        get_integer(_任意数).

最後の文字(L,_最後の文字) :-
        append(_,[_最後の文字],L).

繰り返して表示する(_任意数,_最後の文字) :-
        between(1,_任意数,N),
        writef('%t',[_最後の文字]),
        N = _任意数.