このディレクトリの索引
#  
#  キーボードからNを入力し、Sum = 14 + 24 + ... + N4 を表示しなさい
#  

'キーボードからNを入力し、Sum = 14 + 24 + ... + N4 を表示しなさい' :-
        'キーボードからNを入力し、'(_N),
        'Sum = 14 + 24 + ... + N4 を表示しなさい'(_N).

'キーボードからNを入力し、'(_N) :-
        整数を得る('N',_N > 2,_N).

'Sum = 14 + 24 + ... + N4 を計算して、表示しなさい'(_N) :-
        'Sum = 14 + 24 + ... + N4 を計算して、'(_N,_式文字列,_Sum),
        表示しなさい(_Sum,_式文字列).

'Sum = 14 + 24 + ... + N4 を計算して、'(_N,_式文字列,_Sum) :-
        '14 + 24 + ... + N4 を'(_N,_式文字列),
        計算して(_式文字列,_Sum).

'14 + 24 + ... + N4 を'(_N,_式文字列) :-
        findall(_計算の対象となる整数,(
                    between(1,_M,_N),
                    _計算の対象となる整数 is 10 * _M + 4),
                _計算の対象となる整数ならび),
        atomic_list_concat(_計算の対象となる整数ならび,' + ',_式文字列).

計算して(_式文字列,_Sum) :-
        atom_to_term(_式文字列,_式,_),
        _Sum is _式.

表示しなさい(_Sum,_式文字列) :-
        writef('%t = %t\n',[_Sum,_式文字列]).