Haskellだと問題1が一番難しいともっぱらの噂の問題をやってみました。 問題1 forループ、whileループ、および再帰を使用して、リスト内の数字の合計を計算する3つの関数を記述せよ。 再帰のコードが一番簡単なので、まずはそれから。 ではついに一番難しいforループとwhileループのコードを書いてみましょう。 まず問題になるのが、Haskellにはfor文もwhile文もないというところです。まずはforループを作らなければなりません。そもそもforループ、whileループというのが、何を示すのか?というのがあんまり自明ではないのですが、C言語でのforループとwhileループだと考えましょうか。 for :: Monad m => a -> (a -> Bool) -> (a -> a) -> (a -> m ()) -> m () for init cond incr body
![「ソフトウェアエンジニアならば1時間以内に解けなければいけない5つの問題」をHaskellでやってみた - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/540c8f0b0e53f32e9948811764affebbc4ecb9bf/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUUzJTgwJThDJUUzJTgyJUJEJUUzJTgzJTk1JUUzJTgzJTg4JUUzJTgyJUE2JUUzJTgyJUE3JUUzJTgyJUEyJUUzJTgyJUE4JUUzJTgzJUIzJUUzJTgyJUI4JUUzJTgzJThCJUUzJTgyJUEyJUUzJTgxJUFBJUUzJTgyJTg5JUUzJTgxJUIwMSVFNiU5OSU4MiVFOSU5NiU5MyVFNCVCQiVBNSVFNSU4NiU4NSVFMyU4MSVBQiVFOCVBNyVBMyVFMyU4MSU5MSVFMyU4MSVBQSVFMyU4MSU5MSVFMyU4MiU4QyVFMyU4MSVCMCVFMyU4MSU4NCVFMyU4MSU5MSVFMyU4MSVBQSVFMyU4MSU4NDUlRTMlODElQTQlRTMlODElQUUlRTUlOTUlOEYlRTklQTElOEMlRTMlODAlOEQlRTMlODIlOTJIYXNrZWxsJUUzJTgxJUE3JUUzJTgyJTg0JUUzJTgxJUEzJUUzJTgxJUE2JUUzJTgxJUJGJUUzJTgxJTlGJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmcz04N2NkYzZkZTVhN2E5MTQ2ZDVhMzkxZDAxY2Y2ZTJkYw%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDB0YW5ha2gmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPThlZGM0YWRjODA4NGEwY2M0ZmM5YjgyYTlmMjJjNDFm%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3Daac04af5a6ae6219e76320cb15beb7a9)