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

800 views

Published on

姫路 IT 系勉強会 Vol.11
2012.11.17

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

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
800
On SlideShare
0
From Embeds
0
Number of Embeds
32
Actions
Shares
0
Downloads
2
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

姫路 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

×