Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Haskell初心者がHaskellの楽しさについて語る

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

 Haskell初心者がHaskellの楽しさについて語る

Avatar for Yuto Takamune

Yuto Takamune

February 22, 2023
Tweet

More Decks by Yuto Takamune

Other Decks in Programming

Transcript

  1. 2_C

  2. 解説 • 1~3行目: モジュールのインポート • 6行目: 標準入力 ◦ getLineで読み込まれた入力を wordsを使って空白区切りでリストにし、

    map (read :: String -> Int) でリストの中身をStringからIntに変換 • 7行目: 加工して出力 ◦ sort sでリストを昇順ソート ◦ それをmap showに渡してリストの中身を Stringに変換 ◦ それをunwordsに渡して空白区切りの文字列に変換 ◦ それをputStrLnに渡して出力
  3. 2_D

  4. 3_A

  5. 6_B

  6. コード解説 • 1~4行目: モジュールのimport • 7行目: 入力を全てssに読み込み • 8行目: コアロジック全て

    ◦ lines ssで入力を改行区切りでリストにする ・・・① ◦ (++) <$> ["S ", "H ", "C ", "D "] <*> map show [1 .. 13] :: [String])で、S1, S2, … D13までのリスト を作成・・・② ◦ //で①と②の差分リストを作成 ◦ そのリストをunlinesに食わせて改行区切りの文字列に変換 ◦ putStrに食わせて出力