Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

姫路 IT 系勉強会 Vol. 11 L1 グランプリ Haskell

915 Aufrufe

Veröffentlicht am

姫路 IT 系勉強会 Vol.11
2012.11.17

問題 https://sites.google.com/site/himejiitstudy/2012/20121117/questions

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

姫路 IT 系勉強会 Vol. 11 L1 グランプリ Haskell

  1. 1. 姫路 IT 系勉強会 Vol.11 L1 グランプリ Haskell @kakkun61姫路 IT 系勉強会 Vol. 11 @kakkun61 1/27
  2. 2. 自己紹介 ● 岡本和樹 ● @kakkun61 ● 23 歳 ● 大阪府立大学 4 回生 ● Haskell 歴 本格的には半年ぐらい姫路 IT 系勉強会 Vol. 11 @kakkun61 2/27
  3. 3. Haskell姫路 IT 系勉強会 Vol. 11 @kakkun61 3/27
  4. 4. Haskell姫路 IT 系勉強会 Vol. 11 @kakkun61 4/27
  5. 5. Haskell ● 純粋関数型 ● 遅延評価 ● 参照透明 ● 代数的データ型 ● モナド姫路 IT 系勉強会 Vol. 11 @kakkun61 5/27
  6. 6. Haskell ● 純粋関数型 ● 遅延評価 ● 参照透明 ● 代数的データ型 ● モナド こわくないよ !姫路 IT 系勉強会 Vol. 11 @kakkun61 6/27
  7. 7. Haskell ● とりあえず『すごい Haskell たのしく学 ぼう!』読む ● 読んだら気付いたら分かってる姫路 IT 系勉強会 Vol. 11 @kakkun61 7/27
  8. 8. Haskell姫路 IT 系勉強会 Vol. 11 @kakkun61 8/27
  9. 9. Haskell ● 会議で委員会が発足しそこで作られた珍 しい言語 ● 学術的な方面からの要請 ● 1990 年に最初のバージョン姫路 IT 系勉強会 Vol. 11 @kakkun61 9/27
  10. 10. Haskell ● デファクトスタンダード ● The Glorious Glasgow Haskell Compilation System ● GHC ● Simon Peyton Jones と Simon Marlow姫路 IT 系勉強会 Vol. 11 @kakkun61 10/27
  11. 11. Haskell ● Simon Peyton Jones ● Microsoft Research in Cambridge ● C-- の作者でもある姫路 IT 系勉強会 Vol. 11 @kakkun61 11/27
  12. 12. 問題 1 Fizz Buzz ● 1-100 の Fizz Buzz姫路 IT 系勉強会 Vol. 11 @kakkun61 12/27
  13. 13. 問題 1 Fizz Buzz姫路 IT 系勉強会 Vol. 11 @kakkun61 13/27
  14. 14. 問題 1 Fizz Buzz ● fizzbuzz ● 数値を取って文字列を返す関数 ● 1→"1" ● 3→"fizz" ● 5→"buzz" ● ……姫路 IT 系勉強会 Vol. 11 @kakkun61 14/27
  15. 15. 問題 1 Fizz Buzz ● map fizzbuzz [1..100] ● [1, 2, 3, 4, 5, …… 100] ● ↓ ● ["1", "2", "fizz", 4, "buzz", …… "buzz"]姫路 IT 系勉強会 Vol. 11 @kakkun61 15/27
  16. 16. 問題 1 Fizz Buzz ● mapM_ putStrLn ["1", "2", "fizz", 4, "buzz", …… "buzz"] ● それぞれの要素を 1 行に表示する姫路 IT 系勉強会 Vol. 11 @kakkun61 16/27
  17. 17. 問題 2 GPA 計算 ● A-D, F→4-1, 0 に変換し平均 ● 出典 ● AtCoder Regular Contest #3 A 問題姫路 IT 系勉強会 Vol. 11 @kakkun61 17/27
  18. 18. 問題 2 GPA 計算姫路 IT 系勉強会 Vol. 11 @kakkun61 18/27
  19. 19. 姫路 IT 系勉強会 Vol. 11 @kakkun61 19/27
  20. 20. 問題 2 GPA 計算姫路 IT 系勉強会 Vol. 11 @kakkun61 20/27
  21. 21. 問題 2 GPA 計算姫路 IT 系勉強会 Vol. 11 @kakkun61 21/27
  22. 22. 問題 3 tail -n 5 ● tail -n 5姫路 IT 系勉強会 Vol. 11 @kakkun61 22/27
  23. 23. 問題 3 tail -n 5姫路 IT 系勉強会 Vol. 11 @kakkun61 23/27
  24. 24. 問題 3 tail -n 5 ● args -> getArgs ● 引数に束縛姫路 IT 系勉強会 Vol. 11 @kakkun61 24/27
  25. 25. 問題 3 tail -n 5 ● contents -> ● if null args ● then getContents ● else readFile $ head args ● args が null なら標準入力を ● じゃなかったら args の 1 つめのファイル 名のファイルを読んで contents を束縛姫路 IT 系勉強会 Vol. 11 @kakkun61 25/27
  26. 26. 問題 3 tail -n 5 ● putStr . unlines . reverse . take 5 . reverse . lines $ contents ● contents (文字列)を lines で行のリス トに変換 ● reverse で反転 ● take 5 で頭から 5 つだけにする ● reverse で反転姫路 IT 系勉強会 Vol. 11 @kakkun61 26/27
  27. 27. 問題 3 tail -n 5 ● putStr . unlines . reverse . take 5 . reverse . lines $ contents ● unlines で行のリストを改行区切りの 1 つの文字列に ● putStr で出力姫路 IT 系勉強会 Vol. 11 @kakkun61 27/27

×