このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1312201995/994
#  0から1000までの整数を英語で出力する 
#  という課題があるのですが 
#   
#  まったくわからないので教えてください 
# 
# 

'0から1000までの整数を英語で出力する'(0) :-
        write(zero),!.
'0から1000までの整数を英語で出力する'(N) :-
        '1から1000までの整数を英語で出力する'(N,_英語表現),
        write(_英語表現),!.

'1から1000までの整数を英語で出力する'(0,'') :- !.
'1から1000までの整数を英語で出力する'(N,_英語表現) :-
        N =< 10,
        nth1(N,[one,two,three,four,five,six,seven,eight,nine,ten],_英語表現),!.
'1から1000までの整数を英語で出力する'(N,_英語表現) :-
        N >= 11,
        N =< 19,
        M is N mod 10,
        nth1(M,[eleven,twelve,thirteen,fourteen,fifteen,sixteen,seventeen,eighteen,nineteen],_英語表現),!.
'1から1000までの整数を英語で出力する'(N,_英語表現) :-
        N >= 21,
        N =< 99,
        N_1 is N // 10 - 1,
        M is N mod 10,
        nth1(N_1,[twenty,thirty,forty,fifty,sixty,seventy,eighty,ninety],_10の桁の英語表現),
        '0から1000までの整数を英語で出力する'(M,_1の桁の英語表現),
        concat_atom([_10の桁の英語表現,'-',_1の桁の英語表現],_英語表現).
'1から1000までの整数を英語で出力する'(N,_英語表現) :-
        N >= 100,
        N =< 999,
        N_1 is N // 100,
        M is N mod 100,
        '1から1000までの整数を英語で出力する'(N_1,_100の桁の英語表現),
        '1から1000までの整数を英語で出力する'(M,_10の桁以下の英語表現),
        concat_atom([_100の桁の英語表現,' hundred and ',_10の桁以下の英語表現],_英語表現).
'1から1000までの整数を英語で出力する'(1000,'one-thousand').