Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

関数型もモナドも分からなくてもScalaと言う言語は便利らしい

  • Be the first to comment

関数型もモナドも分からなくてもScalaと言う言語は便利らしい

  1. 1. 関数型もモナドも分からなくてもScalaと言う言語は便利らしい。頭悪いマンだけどScala触ってみたよという話
  2. 2. 注意 あんまりちゃんとしたこと言えないのでマサカられると泣きます いろいろ大目に見てください。
  3. 3. What is ScalaScala is 何
  4. 4. Scala is 何 JVMで動く系言語
  5. 5. Scala is 何 JVMで動く系言語 強い静的型付き言語
  6. 6. Scala is 何 JVMで動く系言語 強い静的型付き言語 型推論
  7. 7. Scala is 何 JVMで動く系言語 強い静的型付き言語 型推論 オブジェクト指向言語(だと個人的には思う)
  8. 8. Scala is 何 JVMで動く系言語 強い静的型付き言語 型推論 オブジェクト指向言語(だと個人的には思う) ただし関数型プログラミングスタイルを実施しやすいように作ってある
  9. 9. Scala is 何 JVMで動く系言語 強い静的型付き言語 型推論 オブジェクト指向言語(だと個人的には思う) ただし関数型プログラミングスタイルを実施しやすいように作ってある javaの資産を使える
  10. 10. Scala is 何OSJavaコンパイラScalaコンパイラコンパイル コンパイル実行ネイティブコード
  11. 11. Scala is 何OSJavaコンパイラScalaコンパイラコンパイル コンパイル実行ネイティブコードこれ
  12. 12. Try to use使ってみよう
  13. 13. 使ってみよう Scalaが動く環境を作るにはPlay Frameworkをインスコするのが楽
  14. 14. 使ってみよう Scalaが動く環境を作るにはPlay Frameworkをインスコするのが楽 Scalaが動く環境を作るには“Play Framework”をインスコ
  15. 15. 使ってみよう Scalaが動く環境を作るにはPlay Frameworkをインスコするのが楽 Scalaが動く環境を作るには“Play Framework”をインスコ 大事なことなので2回
  16. 16. 使ってみよう Scalaが動く環境を作るにはPlay Frameworkをインスコするのが楽 Scalaが動く環境を作るには“Play Framework”をインスコ 大事なことなので2回 インスコしてプロジェクト作ってREPL起動
  17. 17. 使ってみよう Scalaが動く環境を作るにはPlay Frameworkをインスコするのが楽 Scalaが動く環境を作るには“Play Framework”をインスコ 大事なことなので2回 インスコしてプロジェクト作ってREPL起動 参考ページ Scalaの壁をぶち壊せ!"壁パン1発目”~導入編
  18. 18. 使ってみよう実際にインスコしてみる
  19. 19. 使ってみよう 型推論 静的型付き言語の型宣言のだるさ
  20. 20. 使ってみよう 型推論 静的型付き言語の型宣言のだるさ Scalaには型推論があります
  21. 21. 使ってみよう 型推論 静的型付き言語の型宣言のだるさ Scalaには型推論があります 変数の型宣言は必須ではありません
  22. 22. 使ってみよう 型推論 静的型付き言語の型宣言のだるさ Scalaには型推論があります 変数の型宣言は必須ではありません が、型はコンパイル時に静的に決定されます
  23. 23. 使ってみよう 型推論 静的型付き言語の型宣言のだるさ Scalaには型推論があります 変数の型宣言は必須ではありません が、型はコンパイル時に静的に決定されます コンパイラが型を推論してくれます
  24. 24. 使ってみよう 型推論 静的型付き言語の型宣言のだるさ Scalaには型推論があります 変数の型宣言は必須ではありません が、型はコンパイル時に静的に決定されます コンパイラが型を推論してくれます だるさを克服しつつ型システムによる強力なサポートを受けられる!
  25. 25. 使ってみよう 型推論 静的型付き言語の型宣言のだるさ Scalaには型推論があります 変数の型宣言は必須ではありません が、型はコンパイル時に静的に決定されます コンパイラが型を推論してくれます だるさを克服しつつ型システムによる強力なサポートを受けられる! やってみます
  26. 26. 使ってみよう パターンマッチ if文とswitch文の超すごい版みたいなの
  27. 27. 使ってみよう パターンマッチ if文とswitch文の超すごい版みたいなの 値、型、ifによる条件指定でマッチングできる
  28. 28. 使ってみよう パターンマッチ if文とswitch文の超すごい版みたいなの 値、型、ifによる条件指定でマッチングできる 一時変数への束縛
  29. 29. 使ってみよう パターンマッチ if文とswitch文の超すごい版みたいなの 値、型、ifによる条件指定でマッチングできる 一時変数への束縛 Caseクラスで使うと型マッチとプロパティの変数への束縛が両方使えて鼻血出るレベルで便利
  30. 30. 使ってみよう パターンマッチ if文とswitch文の超すごい版みたいなの 値、型、ifによる条件指定でマッチングできる 一時変数への束縛 Caseクラスで使うと型マッチとプロパティの変数への束縛が両方使えて鼻血出るレベルで便利 ちなみに文じゃなくて式なので値を返します
  31. 31. 使ってみよう パターンマッチ if文とswitch文の超すごい版みたいなの 値、型、ifによる条件指定でマッチングできる 一時変数への束縛 Caseクラスで使うと型マッチとプロパティの変数への束縛が両方使えて鼻血出るレベルで便利 ちなみに文じゃなくて式なので値を返します 返される値の型もちゃんと推論されます
  32. 32. 使ってみよう パターンマッチ if文とswitch文の超すごい版みたいなの 値、型、ifによる条件指定でマッチングできる 一時変数への束縛 Caseクラスで使うと型マッチとプロパティの変数への束縛が両方使えて鼻血出るレベルで便利 ちなみに文じゃなくて式なので値を返します 返される値の型もちゃんと推論されます やってみます
  33. 33. 使ってみよう Option[A] それは、ぬるぽを殺すシステム
  34. 34. 使ってみよう Option[A] それは、ぬるぽを殺すシステム ■━⊂( ・∀・) 彡 ガッ☆`Д´)ノ
  35. 35. 使ってみよう Option[A] それは、ぬるぽを殺すシステム ■━⊂( ・∀・) 彡 ガッ☆`Д´)ノ 「存在しないかもしれない値」を表す型
  36. 36. 使ってみよう Option[A] それは、ぬるぽを殺すシステム ■━⊂( ・∀・) 彡 ガッ☆`Д´)ノ 「存在しないかもしれない値」を表す型 サブクラスはNoneとSome[A]のみ存在 None: 「値がない」を表す型 Some[A]: 「A型の値がある」を表す型
  37. 37. 使ってみよう Option[A] それは、ぬるぽを殺すシステム ■━⊂( ・∀・) 彡 ガッ☆`Д´)ノ 「存在しないかもしれない値」を表す型 サブクラスはNoneとSome[A]のみ存在 None: 「値がない」を表す型 Some[A]: 「A型の値がある」を表す型 パターンマッチを使うとぬるぽを華麗に回避できる map()やflatMap()を使うと更に華麗に回避できるけど割愛
  38. 38. 使ってみよう Option[A] それは、ぬるぽを殺すシステム ■━⊂( ・∀・) 彡 ガッ☆`Д´)ノ 「存在しないかもしれない値」を表す型 サブクラスはNoneとSome[A]のみ存在 None: 「値がない」を表す型 Some[A]: 「A型の値がある」を表す型 パターンマッチを使うとぬるぽを華麗に回避できる map()やflatMap()を使うと更に華麗に回避できるけど割愛 やってみます
  39. 39. 使ってみよう Option[A] それは、ぬるぽを殺すシステム ■━⊂( ・∀・) 彡 ガッ☆`Д´)ノ 「存在しないかもしれない値」を表す型 サブクラスはNoneとSome[A]のみ存在 None: 「値がない」を表す型 Some[A]: 「A型の値がある」を表す型 パターンマッチを使うとぬるぽを華麗に回避できる map()やflatMap()を使うと更に華麗に回避できるけど割愛 やってみます
  40. 40. Conclusionまとめ
  41. 41. まとめ 関数型プログラミングとか
  42. 42. まとめ モナドとか
  43. 43. まとめ_人人人人人人人人_> 全然分からん < ̄Y^Y^Y^Y^Y^Y^Y ̄
  44. 44. まとめけど、分からんでも使えるらしいし便利な機能ついてるっぽいしjavaの資産(ライブラリとか)も使えるし※手続き型でも普通に書けます
  45. 45. まとめ…Scala、始めてみようかな?
  46. 46. まとめ始めましょう!
  47. 47. まとめで、僕に教えて下さい
  48. 48. まとめおわり

×