ふつケル読んでる splitAt

文字列調べて、長かったらsplitAtって書いた。解答例見て書きなおした。

foldLine :: String -> [String]
foldLine line = case splitAt 60 line of
    (s, []) -> [s]
    (s, remain) -> s : foldLine remain

いきなりsplitAtして、後ろが空リストだったら、リストリテラルで1番目を返して、後ろがあれば、1番目の要素+残りに再帰。って賢いなー。自分でsplitAtみたいなの書くときもこういう関数の設計にすればうまくいくのね。

よく言われててふーんって聞き流してたけど、ふつうのhaskellは練習問題のちょうどよさ加減が気持ちいい。できそうでできない、頑張ったらできた、解答例見たらすっきり書いててそれが理解できて、もう一度自分で書いてみたらかけて、良いサイクルである。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中