"New Zealand Autumn" by Abaconda
モナドを実装したり、メモ化したり、コンビネータを書いたりとかしたけど、Haskellらしいコードが全然書けない。一応は動くものは書けるけど、どうも命令型で関数型っぽくない。ということで、Haskellらしいコードが書けるように修行する。
"らしい"コードを書けるようになるためには、素晴らしいプログラマが書いた"らしい"コードをたくさん読んで吸収していくのが一番じゃないかなと思う。ということで、しばらく以下をやっていこうと思います。
- codeforceの問題をHaskellで解く
- ratingの高いHaskellerが書いたコードと自分のコードを比べる
- いいところを吸収する
自分が書いたコード:
import Char
isVowel 'a' = True
isVowel 'i' = True
isVowel 'u' = True
isVowel 'e' = True
isVowel 'o' = True
isVowel 'y' = True
isVowel 'A' = True
isVowel 'I' = True
isVowel 'U' = True
isVowel 'E' = True
isVowel 'O' = True
isVowel 'Y' = True
isVowel x = False
addDot [] = []
addDot (x:xs) = '.' : x : addDot xs
main = do
input <- getLine
putStrLn . map toLower . addDot . filter (not . isVowel ) $ input
お手本コード(bjin氏参考):
import Char
g x | x < '0' || elem x "aoyeui" = ""
| 1 > 0 = '.':[x]
main = interact $ concatMap (g.toLower)
ポイント:
0 件のコメント:
コメントを投稿