Submit Search
Upload
Scalaで学ぶ関数型言語超入門
•
Download as PPTX, PDF
•
3 likes
•
976 views
yujiro_t
Follow
関数型勉強会のスライドの改訂版
Read less
Read more
Engineering
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 48
Download now
Recommended
訂正版出しました! こっちをどうぞ! http://www.slideshare.net/yujiro_t/scala-36095251
Scalaで学ぶ関数型言語超入門
Scalaで学ぶ関数型言語超入門
yujiro_t
Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]
Ra Zon
こわくないScala
こわくないScala
こわくないScala
FScoward
Java使いにとっての関数
Java使いにとっての関数
amkt922
Scala is-unscared
Scala is-unscared
Kota Mizushima
Scalaはこわくない(たぶん)
こわくないScala
こわくないScala
Kota Mizushima
2014/02/08(土) Scala関西ビギナーズ 第3回にて発表。 Scala関西ビギナーズWiki https://github.com/SAMMY7th/scala_kb/wiki
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Asami Abe
Lecture1
Lecture1
Eita Sugimoto
Recommended
訂正版出しました! こっちをどうぞ! http://www.slideshare.net/yujiro_t/scala-36095251
Scalaで学ぶ関数型言語超入門
Scalaで学ぶ関数型言語超入門
yujiro_t
Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]
Ra Zon
こわくないScala
こわくないScala
こわくないScala
FScoward
Java使いにとっての関数
Java使いにとっての関数
amkt922
Scala is-unscared
Scala is-unscared
Kota Mizushima
Scalaはこわくない(たぶん)
こわくないScala
こわくないScala
Kota Mizushima
2014/02/08(土) Scala関西ビギナーズ 第3回にて発表。 Scala関西ビギナーズWiki https://github.com/SAMMY7th/scala_kb/wiki
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Asami Abe
Lecture1
Lecture1
Eita Sugimoto
学内発表会スライド
Scalaで学ぶ関数型超入門
Scalaで学ぶ関数型超入門
Yuichiro Takahashi
第21回オープンラボ岡山の発表スライド http://openlab.okaya.ma/wiki.cgi?page=%CA%D9%B6%AF%B2%F1%2F%C2%E8021%B2%F3
磯野ー!関数型言語やろうぜー!
磯野ー!関数型言語やろうぜー!
Ra Zon
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
ke-m kamekoopa
Lecture4
Lecture4
Eita Sugimoto
Gunma.web #5でやったLT資料 実際のLT時には非表示にしていたページを含む
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
parrotstudio
静的型付けの関数型言語のすばらしさに加えて、HaskellやOcamlにはないScala独特の機能について紹介した資料です。
Scalaノススメ
Scalaノススメ
Yasuyuki Maeda
Swift&Obj-C&Xcode開発周り勉強会 - 0x03で登壇した内容でつ。
Swiftで、かなり微妙な型クラス
Swiftで、かなり微妙な型クラス
Nobukazu Hanada
Scalalr
Scalalr
Scalalr
ichikaz3
Haskell講義第1回
Haskell Lecture 1
Haskell Lecture 1
Yusuke Matsushita
Phantom Type自体の説明はほとんどありません。Implicit parameterを使って、コンパイル時にごにょごにょやる方法を通し、型の表現によっていろいろできることを説明しています。
Phantom Type in Scala
Phantom Type in Scala
Yasuyuki Maeda
Currying
Currying
Akura Pi
Quasar: Actor Model and Light Weight Threads on Java
Quasar: Actor Model and Light Weight Threads on Java
Taku Miyakawa
Rxjavaとoptionalで関数型androidしよう @Shibuya.apk #2
Rxjavaとoptionalで関数型androidしよう
Rxjavaとoptionalで関数型androidしよう
Fumihiko Shiroyama
Azure container serviceの検証
Azure container service上でコンテナベースでオートスケールの検証をしてみた
Azure container service上でコンテナベースでオートスケールの検証をしてみた
エンジニア勉強会 エスキュービズム
機械学習ライブラリ : TensorFlow
機械学習ライブラリ : TensorFlow
機械学習ライブラリ : TensorFlow
エンジニア勉強会 エスキュービズム
Go言語によるWebアプリケーション開発
Go言語によるWebアプリケーション開発
Go言語によるWebアプリケーション開発
エンジニア勉強会 エスキュービズム
A potential of AI in retail.
小売りにおけるAIの可能性
小売りにおけるAIの可能性
エンジニア勉強会 エスキュービズム
研究でMatlabを使っている大学生/大学院生/研究者向けの関数型プログラミング入門です.日々のコーディングを効率化するために有用な無名関数や高階関数の使い方について例を通して簡単に説明します.
関数型プログラミング入門 for Matlab ユーザー
関数型プログラミング入門 for Matlab ユーザー
Ichiro Maruta
React/Redux/Redux-Saga+サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリング
エンジニア勉強会 エスキュービズム
https://d-cube.connpass.com/event/74106/
頑張りすぎないScala
頑張りすぎないScala
takezoe
関西関数型道場#01発表資料
Flang kkd1
Flang kkd1
florets1
Excel方眼紙爆発しろ!
Scalaで萌える関数型プログラミング[エッセンシャル版]
Scalaで萌える関数型プログラミング[エッセンシャル版]
Ra Zon
More Related Content
What's hot
学内発表会スライド
Scalaで学ぶ関数型超入門
Scalaで学ぶ関数型超入門
Yuichiro Takahashi
第21回オープンラボ岡山の発表スライド http://openlab.okaya.ma/wiki.cgi?page=%CA%D9%B6%AF%B2%F1%2F%C2%E8021%B2%F3
磯野ー!関数型言語やろうぜー!
磯野ー!関数型言語やろうぜー!
Ra Zon
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
ke-m kamekoopa
Lecture4
Lecture4
Eita Sugimoto
Gunma.web #5でやったLT資料 実際のLT時には非表示にしていたページを含む
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
parrotstudio
静的型付けの関数型言語のすばらしさに加えて、HaskellやOcamlにはないScala独特の機能について紹介した資料です。
Scalaノススメ
Scalaノススメ
Yasuyuki Maeda
Swift&Obj-C&Xcode開発周り勉強会 - 0x03で登壇した内容でつ。
Swiftで、かなり微妙な型クラス
Swiftで、かなり微妙な型クラス
Nobukazu Hanada
Scalalr
Scalalr
Scalalr
ichikaz3
Haskell講義第1回
Haskell Lecture 1
Haskell Lecture 1
Yusuke Matsushita
Phantom Type自体の説明はほとんどありません。Implicit parameterを使って、コンパイル時にごにょごにょやる方法を通し、型の表現によっていろいろできることを説明しています。
Phantom Type in Scala
Phantom Type in Scala
Yasuyuki Maeda
Currying
Currying
Akura Pi
Quasar: Actor Model and Light Weight Threads on Java
Quasar: Actor Model and Light Weight Threads on Java
Taku Miyakawa
Rxjavaとoptionalで関数型androidしよう @Shibuya.apk #2
Rxjavaとoptionalで関数型androidしよう
Rxjavaとoptionalで関数型androidしよう
Fumihiko Shiroyama
What's hot
(13)
Scalaで学ぶ関数型超入門
Scalaで学ぶ関数型超入門
磯野ー!関数型言語やろうぜー!
磯野ー!関数型言語やろうぜー!
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
Lecture4
Lecture4
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
Scalaノススメ
Scalaノススメ
Swiftで、かなり微妙な型クラス
Swiftで、かなり微妙な型クラス
Scalalr
Scalalr
Haskell Lecture 1
Haskell Lecture 1
Phantom Type in Scala
Phantom Type in Scala
Currying
Currying
Quasar: Actor Model and Light Weight Threads on Java
Quasar: Actor Model and Light Weight Threads on Java
Rxjavaとoptionalで関数型androidしよう
Rxjavaとoptionalで関数型androidしよう
Viewers also liked
Azure container serviceの検証
Azure container service上でコンテナベースでオートスケールの検証をしてみた
Azure container service上でコンテナベースでオートスケールの検証をしてみた
エンジニア勉強会 エスキュービズム
機械学習ライブラリ : TensorFlow
機械学習ライブラリ : TensorFlow
機械学習ライブラリ : TensorFlow
エンジニア勉強会 エスキュービズム
Go言語によるWebアプリケーション開発
Go言語によるWebアプリケーション開発
Go言語によるWebアプリケーション開発
エンジニア勉強会 エスキュービズム
A potential of AI in retail.
小売りにおけるAIの可能性
小売りにおけるAIの可能性
エンジニア勉強会 エスキュービズム
研究でMatlabを使っている大学生/大学院生/研究者向けの関数型プログラミング入門です.日々のコーディングを効率化するために有用な無名関数や高階関数の使い方について例を通して簡単に説明します.
関数型プログラミング入門 for Matlab ユーザー
関数型プログラミング入門 for Matlab ユーザー
Ichiro Maruta
React/Redux/Redux-Saga+サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリング
エンジニア勉強会 エスキュービズム
Viewers also liked
(6)
Azure container service上でコンテナベースでオートスケールの検証をしてみた
Azure container service上でコンテナベースでオートスケールの検証をしてみた
機械学習ライブラリ : TensorFlow
機械学習ライブラリ : TensorFlow
Go言語によるWebアプリケーション開発
Go言語によるWebアプリケーション開発
小売りにおけるAIの可能性
小売りにおけるAIの可能性
関数型プログラミング入門 for Matlab ユーザー
関数型プログラミング入門 for Matlab ユーザー
React Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリング
Similar to Scalaで学ぶ関数型言語超入門
https://d-cube.connpass.com/event/74106/
頑張りすぎないScala
頑張りすぎないScala
takezoe
関西関数型道場#01発表資料
Flang kkd1
Flang kkd1
florets1
Excel方眼紙爆発しろ!
Scalaで萌える関数型プログラミング[エッセンシャル版]
Scalaで萌える関数型プログラミング[エッセンシャル版]
Ra Zon
Java ソースコードから情報を取り出す Java プログラムを作る演習の資料です. 更新版の資料が https://www.slideshare.net/TakashiIshio/ver101-193313140 にあります.
演習:プログラミング言語処理をやってみよう
演習:プログラミング言語処理をやってみよう
Takashi Ishio
社内のチーム向けScala勉強会資料です。
Scala勉強会_2014_11_18
Scala勉強会_2014_11_18
Shuya Tsukamoto
Java ソースコードから情報を取り出す Java プログラムを作る演習の資料です.
演習:プログラミング言語処理をやってみよう (ver.1.01)
演習:プログラミング言語処理をやってみよう (ver.1.01)
Takashi Ishio
Scala基礎勉強会 懇親会LT
Scala基礎勉強会 懇親会LT
pocketberserker
ナイーブツリーの入れ子集合
ナイーブツリーの入れ子集合
Akura Pi
Scalaがどんな言語なのかふんわりと把握できれば幸いです. 第二回は未定
Scala入門
Scala入門
Yoshifumi Takeshima
about list search algorithm
javaによる探索アルゴリズムとリスト探索
javaによる探索アルゴリズムとリスト探索
RabbitFoot141
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]
Ra Zon
NL名古屋での発表資料です。発表ではExcel方眼紙で行いました。これはそれをPDFに変換したものです。 発表に使ったExcelファイルはこちら https://onedrive.live.com/redir?resid=C562DFDEB23518F0!2128&authkey=!ABEB2nl_ZrSQ45Q&ithint=file%2cxlsx
No more Legacy documents
No more Legacy documents
bleis tift
2015/06/02に開催されたElixirの勉強会 Shinjuku.ex #10 の資料。 * イベント情報: http://shinjukuex.connpass.com/event/15229/ * PowerPointのファイルダウンロード: http://bit.ly/perfect_elixir_information_gathering 資料のライセンスはクリエイティブ・コモンズで、自己紹介ページのみBY・ND、それ以外は全てCCゼロ(いかなる権利も保有しない)です。必要に応じて自己紹介ページを取り除き、あとはご自由にご利用下さい。 改版を行った場合は、 http://twitter.com/keithseahus より、 #shinjukuex タグ付きでお知らせします。
パーフェクト"Elixir情報収集"
パーフェクト"Elixir情報収集"
Keisuke Takahashi
2015年5月27日の Lisp Meet Up presented by Shibuya.lisp #28 での発表「R について」のスライド PDF. Clojure から R を利用するライブラリ Rashinban を紹介し、Rashinban を支える技術として、Clojure と非 Java プロダクトとの連携、R をサーバ化する Rserve, protocols, multimethods, metadata について説明した。
Shibuya.lisp #28: 仮題: R について
Shibuya.lisp #28: 仮題: R について
tnoda
Goで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろう
Esehara Shigeo
Similar to Scalaで学ぶ関数型言語超入門
(15)
頑張りすぎないScala
頑張りすぎないScala
Flang kkd1
Flang kkd1
Scalaで萌える関数型プログラミング[エッセンシャル版]
Scalaで萌える関数型プログラミング[エッセンシャル版]
演習:プログラミング言語処理をやってみよう
演習:プログラミング言語処理をやってみよう
Scala勉強会_2014_11_18
Scala勉強会_2014_11_18
演習:プログラミング言語処理をやってみよう (ver.1.01)
演習:プログラミング言語処理をやってみよう (ver.1.01)
Scala基礎勉強会 懇親会LT
Scala基礎勉強会 懇親会LT
ナイーブツリーの入れ子集合
ナイーブツリーの入れ子集合
Scala入門
Scala入門
javaによる探索アルゴリズムとリスト探索
javaによる探索アルゴリズムとリスト探索
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]
No more Legacy documents
No more Legacy documents
パーフェクト"Elixir情報収集"
パーフェクト"Elixir情報収集"
Shibuya.lisp #28: 仮題: R について
Shibuya.lisp #28: 仮題: R について
Goで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろう
Scalaで学ぶ関数型言語超入門
1.
Scalaで学ぶ関数型言語超入門 〜関数型言語の魅力〜 改訂版!
2.
はじめに 素数アルゴリズムで見る オブジェクト指向言語との違い
3.
エラトステネスの篩って? • 素数を求めるときに使うアルゴリズム • プログラミングの問題なんかによくでてくる •
古代ギリシャの数学者であるエラトステネス が考案したのでこう呼ばれている。
4.
内容 • 整数のリストに2からxまでの数を入れる • リストの先頭に行き、その数の倍数をふるい 落とす。 •
リストの先頭の値がxの平方根になるまで繰 り返す。
5.
ベリーシンプル!!!!!
6.
では早速コードを見てみましょう!
7.
Javaでの実装例
8.
少しごちゃごちゃしていますね・・・ Oh No!
9.
ではこれをScalaで書くと・・・・?
10.
Scalaでの実装例
11.
たったこれだけ!?
12.
比較 Java Scala
13.
すばらしい!!!
14.
なぜこんな魔法のようなことができる のか? どうしてこんなに短く書けるのか? 気になりませんか? 空気読んで!
15.
勿論気になりますよね??
16.
それではご説明いたしましょう! ようこそ! 関数型の世界へ!
17.
関数型言語について 〜関数型言語の種類や利点、特徴〜
18.
そもそも“関数型言語”って何ぞや?
19.
関数型言語とは! 関数型プログラミングに向いた特徴を持つプログラミング言語、 関数型プログラミング言語である! 引数に関数を作用させて計算をおこなうことから、作用型言語 ともいう! (Wikipediaより抜粋)
20.
はい?
21.
どういうこと?
22.
関数型言語の特徴 • 基本的に値がイミュータブルである(変更不能) • 関数がファーストクラスオブジェクトである •
高階関数 • 関数の部分適用、カリー化 • 遅延評価 • Option型 • 再帰 • 型推論 • 関数が副作用を持たない(純粋関数型)
23.
関数型言語ってどんなんがあんの?
24.
代表的な関数型言語 • 純粋関数型言語 • Haskell •
Miranda • 非純粋関数型言語 • ML • Scala • OCaml • Erlang • Swift(?)
25.
じゃあ関数型言語を使うと何が嬉しいの?
26.
関数型言語のメリットその1 実行時エラーが圧倒的に少ない
27.
実行時エラーが少ない • 基本的にコンパイル時にほとんどのエラーを 検出してくれる。 • Option型の使用により、ぬるぽで落ちる事は 全くない(多少意識してコーディングする必要 はある) •
値が変更不能、また関数が細かいのでバグ が発見しやすい
28.
コードが短く、シンプルになる 関数型言語のメリットその2
29.
コードが短くシンプルになる • 関数を処理毎に細かく分け、それをつなげた り合成したりしてプログラミングしていくので、 コードが短くてすむ。 • 上で説明したように大きな関数も、細かい関 数から成り立っているのでいくつか関数を理 解すれば他の関数もスッと理解していく事が できる。
30.
関数型言語のメイン、関数について 〜関数と高階関数〜
31.
関数の特徴 • 同じ入力に対して必ず同じ出力を返す。 • 関数は変数と同じく引数や戻り値として扱う 事ができる。 •
また、変数に格納する事も、関数同士を足し 合わせて新しい関数を作る事も可能
32.
オブジェクト指向のメソッドにくらべて 非常に柔軟性が高いです!
33.
じゃあ高階関数って? 後悔→
34.
高階関数とは? • 引数に関数を取ったり、戻り値として関数を 返す関数の事。 • 代表的な高階関数にmap、filter、foreachなど がある
35.
mapを使った例を見てみましょう!
36.
これが高階関数(map)だ!
37.
なんだか地味ですね(; ^ω^)
38.
map関数とは! • mapとは ”コレクションの中身を引数(A型とします)に取 り、B型を返す関数” を引数に取りB型のコレクションを返す高階 関数です。 ・ 引数として与えられた関数をコレクションの 要素一つ一つに適用していきます。
39.
つまり・・・
40.
“コレクションの中身を変化させる関数” という事ですね!
41.
今回の場合 ・ mapの中にある(v: Int)
=> v * 2 という関数が引数になります。 ・ mapの引数となっている関数はIntを一つ引 数に取り、2倍にして返します。
42.
あれ?returnは?
43.
returnについて • returnがないのになんで戻り値があるん や!?と不思議に思うかもしれません。 • Scalaをはじめとする関数型言語において関 数の戻り値は ”関数の中で最後に評価(実行)された値” となるので、returnは基本的に必要ないので す! (今回の場合はv
* 2がそのまま戻り値になる)
44.
図解map関数
45.
まとめ • 関数型言語は小さな関数を組み合わせてプ ログラミングしていく! • 関数の柔軟性が高いので、複雑な処理もシ ンプルに書ける! •
コードの記述量が減る! • 実行時エラーがほとんどない! • 読みやすい! • 高階関数(というか考え方)はとても重要!
46.
まとめ2 Scala最高!!!!!
47.
これを期にぜひ関数型言語を触って みてください!
48.
ご清聴ありがとうございました!
Download now