- 5 名前:3 mailto:sage [2009/05/22(金) 10:53:10 ]
- 仕様に忠実でなかったので訂正します。
「10個の数字を入力する」が反映されていませんでした。 findallの中にfor/3を書くと10個に達しないうちに改行がきた場合など に不都合が生じます。それでfindall/3の使用を断念。 get_integers(L) :- get_code(C),get_integers(10,C,L),!. get_integers(1,C,[C1]) :- toint(C,C1). get_integers(N,C,[C1|R]) :- toint(C,C1),get_code(C2),M is N-1,get_integers(M,C2, R). get_integers(N,C,L) :- get_code(C2),get_integers(N,C2,L). toint(C,X) :- C>=48,C=<57,X is C-48. やれやれ、面倒なこととなりました。
|

|