このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1279286575/28
#  [1] 授業単元:情報処理演習 
#  [2] 問題文(含コード&リンク):元金a円、利率r円で、何年預けると目標金額b円を超えるか。ただし金利は複利計算によって求めるものとする。 
#  
?- !'ls -l *.html | grep "2010-07-17"'.
-rw-r--r-- 1 root     root        2599 2010-07-17 04:48 c137_956.html
-rw-r--r-- 1 keizo    keizo     430354 2010-07-17 04:27 c_shukudai_137.html
-rw-r--r-- 1 root     root        1071 2010-07-17 18:33 j69_316.html
yes.
?- 'a##'.
c138-42#
このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1279286575/42
#  1] 授業単元:く興味本位での自習 
#  [2] 問題文 
#  (繰り返し文を用いて) 
#  1〜10までの偶数を出力 
#   
#  2 
#  4 
#  6 
#  8 
#  10 
#  

'1〜10までの偶数を出力' :-
        for(1,N,10),
        偶数(N),
        write_formatted('%t\n',[N]),
        fail.
'1〜10までの偶数を出力'.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

'1〜10までの偶数を出力' :-
        '1〜10までの偶数(非決定性)'(1,N),
        write_formatted('%t\n',[N]),
        fail.
'1〜10までの偶数'.

'1〜10までの偶数(非決定性)'(N,_) :- N > 10,!,fail.
'1〜10までの偶数(非決定性)'(N,N) :- 偶数(N).
'1〜10までの偶数(非決定性)'(N1,N) :-
        N2 is N1 + 1,
        '1〜10までの偶数(非決定性)'(N2,N).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

'1〜10までの偶数を出力' :-
        '1〜10までの偶数を出力'(1).

'1〜10までの偶数を出力'(N) :- N > 10,!.
'1〜10までの偶数を出力'(N) :-
        偶数(N),
        write_formatted('%t\n',[N]),
        N2 is N + 1,
        '1〜10までの偶数を出力'(N2).
'1〜10までの偶数を出力'(N) :-
        奇数(N),
        N2 is N + 1,
        '1〜10までの偶数を出力'(N2).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

'1〜10までの偶数を出力' :-
        '1〜10までの偶数ならび'(1,L),
        concat_atom(L,'\n',S),
        write_formatted('%t\n',[S]).

'1〜10までの偶数ならび'(N,[]) :- N > 10,!.
'1〜10までの偶数ならび'(N,[N|R]) :-
        偶数(N),
        N2 is N + 1,
        '1〜10までの偶数ならび'(N2,R).
'1〜10までの偶数ならび'(N,R) :-
        奇数(N),
        N2 is N + 1,
        '1〜10までの偶数ならび'(N2,R).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

'1〜10までの偶数を出力' :-
        '1〜10までの偶数を出力'(1).

'1〜10までの偶数を出力'(N) :- N > 10,!.
'1〜10までの偶数を出力'(N) :-
        偶数(N),
        write_formatted('%t\n',[N]),
        N2 is N + 1,
        '1〜10までの偶数を出力'(N2).
'1〜10までの偶数を出力'(N) :-
        奇数(N),
        N2 is N + 1,
        '1〜10までの偶数を出力'(N2).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

'1〜10までの偶数を出力' :-
        findall(N,(for(1,N,10),偶数(N)),L),
        concat_atom(L,'\n',S),
        write_formatted('%t\n',[S]).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

偶数(N) :- 0 is N mod 2.

奇数(N) :- 1 is N mod 2.