wvogel日記

自分用の技術備忘録が多めです.

数当2

再帰を使わずに書いてみました。
今回は、take関数で、試行回数10回の制限を設けています。

main内の変数が、asになってるのは打ち間違いの放置笑
遅延評価であるから書けるコードですね。これがCなら、

scanf("%d",n);
/*処理*/
printf("比較結果");

という感じですが、Haskellのように一行ではすまない。

見ての通り、まだ問題点があって、正しい答えを入力しても、そこで処理が終了しません。
なので == のときに終了させる、逆にいえば /= のときだけ処理を継続するようにしなければなりません。
この方法は、今の私にはリスト処理しか思いつかないのですが、自分で書くとどうもうまくいかない。
(x:xs)の、xsの扱いが出来ていないか、しっかり構文を理解していないか。
個人的には、おそらく後者だと思っています。