このディレクトリの索引
#  西暦年を入力してそれ以後の閏年を10個表示させる

西暦年を入力してそれ以後の閏年を10個表示させる :-
        西暦年を入力して(_西暦年),
        それ以後の閏年を10個(_西暦年,_それ以後の閏年を10個),
        表示させる(_それ以後の閏年を10個).

西暦年を入力して(_西暦年) :-
        write('西暦年を入力 '),
        read(_西暦年).

それ以後の閏年を10個(_年,_それ以後の閏年を10個) :-
        '10個'(_それ以後の閏年を10個),
        それ以後の閏年を(_年,_それ以後の閏年を10個).

'10個'(_10個のならび) :-
        length(_10個のならび,10).

それ以後の閏年を(_,[]).
それ以後の閏年を(_閏年,[_閏年|_残り閏年ならび]) :-
        閏年(_閏年),
        _閏年の翌年 is _閏年 + 1,
        それ以後の閏年を(_閏年の翌年,_残り閏年ならび),!.
それ以後の閏年を(_閏年ではない年,_残り閏年ならび) :-
        _閏年ではない年の翌年 is _閏年ではない年 + 1,
        それ以後の閏年を(_閏年ではない年の翌年,_残り閏年ならび).

表示させる(_それ以後の閏年を10個) :-
        atomic_list_concat(_それ以後の閏年を10個,'\n',_表示文字列),
        writef('%t\n',[_表示文字列]).


閏年(_閏年) :-
        0 is _閏年 mod 400,!.
閏年(_閏年) :-
        \+(0 is _閏年 mod 100),
        0 is _閏年 mod 4.