このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1308749241/242
#  [1] 授業単元:引数の利用 
#  [2] 問題文(含コード&リンク): 
#  #include <stdio.h> 
#  void inputData(int data[20]) 
#  { 
#   int n = 0; 
#   while (n < 20) { 
#    printf("data[%2d] = ", n); 
#    if (scanf("%d", &data[n]) != 1) { 
#     printf("数字を入力してください\n"); 
#     scanf("%*s"); 
#    } else if (data[n] < 0 || 100 < data[n]) { 
#     printf("[0, 100] の範囲で入力してください\n"); 
#    } else { 
#     ++n; 
#    } 
#   } 
#  } 
#  void outputData(int data[20]) 
#  { 
#   int i; 
#   for (i = 0; i < 20; ++i) { 
#    printf("data[%2d] = %3d\n", i, data[i]); 
#   } 
#  } 
#  int main(void) 
#  { 
#   int data[20]; 
#   inputData(data); 
#   outputData(data); 
#   return 0; 
#  } 
# 
# 

'20個の0から100の範囲のデータを読み込む'(_データならび) :-
        length(_データならび,20),
        findall(_0から100の範囲の]整数,(
                     append(_,[_|_],_データならび),
                     '0から100の範囲の整数を得る'(_0から100の範囲の整数)),
                _データならび).

'0から100の範囲の整数を得る'(_0から100の範囲の整数) :-
        get_integer(_0から100の範囲の整数),
        _0から100の範囲の整数 >= 0,
        _0から100の範囲の整数 =< 100,!.
'0から100の範囲の整数を得る'(_0から100の範囲の整数) :-
        write('0から100の範囲の整数を入力してください\n'),
        '0から100の範囲の整数を得る'(_0から100の範囲の整数).

データを書きだす(_データならび) :-
        append(_,[_整数|R],_データならび),
        writef('%3r\n',[_整数]),
        R = [].