HaskellでFizzBuzzを書いた
大本の目標であるFizzBuzz書いた
code:Haskell
main = do
putStrLn "getInt:"
a <- getLine
let num = read a :: Int
answer array False
answer array False= do
print str
answer next hasNext
where
num = last array
next = init array
str = fizzBuzz num
hasNext = null next
answer array True = print "end"
fizzBuzz num = "num:" ++(show num)++ ":" ++ (judge num)
judge num =
if fizzbuzz == 0
then "FizzBuzz"
else
if fizz == 0
then "Fizz"
else
if buzz == 0
then "Buzz"
else ""
where
fizz = mod num 3
buzz = mod num 5
fizzbuzz = mod num 15
判定部がもっとうまいこと出来ただろと思う…
ここまでの総時間:7.0H(+1.5H)
所感
forがない当たりで正直挫けた
きれいに書こうとして、無駄に模索時間が長かった気がする
初めて触る言語なんだし、キレイにとか考えずに動かすことを念頭に置いた方がよかった
7.0Hはかけすぎだと思う
実際は手を動かしたのが7.0Hっていうだけで、Qiitaの記事漁りとか含めると20Hは超えてるんじゃないかな
FizzBuzzのロジックは頑張ってサンプル読まないようにして自力でやった
結果的に、Javaの書き方をHaskellに落とし込もうとしてドツボにハマった気がする
先入観はダメね。。。
なんでこんなことやったの?
スタートはFizzBuzzってなんでFizzBuzzっていうんだっていうところからスタート
調べてて、そういえばFizzBuzzって書いたことないなーと思う
Javaで書いたら10分ぐらいでいけるんだろーと思いつつ、知らない言語だとどんなもんか知りたくなる
全く知らない関数型言語からチョイスすることにして、たまたまQiitaのトレンドに上がってたHaskellに決定
勢いだけで生きてんな。。。
LT用
paisa.IOに上げてみた
今後
ちゃんと学ぶ
ガードとかパターンマッチとかよくわからない
モナドとかもっとわからん