このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1291471791/547
#  [1] 授業単元: プログラミング 
#  [2] 問題文(含コード&リンク): http://ime.nu/ywata-lab.yz.yamagata-u.ac.jp/PDF/pro2-12-15.pdf 
#  ・文字数をキーボードから入力し,その数の分のメモリを動的に確保せよ
#  ・さらに,その文字数分の文字をキーボードから入力し,1度に出力するプログラムを作成せよ

'文字数をキーボードから入力し,その数の分のメモリを動的に確保せよ' :-
        '文字数をキーボードから入力し'(_文字数),
        その数の分のメモリを動的に確保せよ(_文字数,_Heap_vector).
        'さらに,その文字数分の文字をキーボードから入力し,1度に出力する'(0,_文字数,_Heap_vector),
        '1度に出力する'(_文字数,_Heap_vector),!.

その数の分のメモリを動的に確保せよ(_文字数,_Heap_vector) :-
        new_heap_vector(_Heap_vector,_文字数).

'さらに,その文字数分の文字をキーボードから入力し,1度に出力する'(_文字数,_文字数,_) :- !.
'さらに,その文字数分の文字をキーボードから入力し,1度に出力する'(N,_文字数,_Heap_vector) :-
        get_code(_文字コード),
        set_vector_element(_Heap_vector,N,_文字コード),
        N2 is N + 1,
        'さらに,その文字数分の文字をキーボードから入力し'(N2,_文字数,_Heap_vector),

'1度に出力する'(_文字数,_Heap_vector) :-
        findall(_文字,(
                    N_1 is _文字数 - 1,
                    for(0,N,N_1),
                    vector_element(_Heap_vector,N,_Element),
                    char_code(_文字,_Element)),
                L),
        concat_atom(L,S),
        write_formatted('%t\n',[S]).