Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
Camp report for_kwskrb
rojiuratech
Cookpad TechConf 2016 - DWHに必要なこと
Minero Aoki
メカジョさんとジュリアたん♡ (Mechajyo and Julia-tan) #JuliaTokyo #JuliaLang
Takeshi Kimura
Juliaでオンライン線形分類器つくった
Takeshi Ishita
R&D at Foodtech company - #CookpadTechConf 2016
Aki Ariga
Pyconjp2016 pyftplib
Shinya Okano
Python入門 コードリーディング - PyConJP2016
Shinya Okano
Cloud Native Hadoop #cwt2016
Cloudera Japan
1
of
25
Top clipped slide
Rubyistを誘うScalaの世界
Nov. 25, 2015
•
0 likes
9 likes
×
Be the first to like this
Show More
•
9,726 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Technology
#kwskrb 30
Yuto Matsukubo
Follow
Advertisement
Advertisement
Advertisement
Recommended
Scala勉強会_2014_11_18
Shuya Tsukamoto
372 views
•
27 slides
Scala.jsはじめました?
K Kinzal
1.8K views
•
53 slides
Ruby使いのためのScalaのススメ
Ouka Yuka
6K views
•
24 slides
Scala.jsはじめました!
K Kinzal
2K views
•
32 slides
ScalaでAndroidアプリ開発
papamitra
3K views
•
44 slides
第二回tento.tech定例会
Sosuke Suzuki
94 views
•
26 slides
More Related Content
Viewers also liked
(20)
Camp report for_kwskrb
rojiuratech
•
6.2K views
Cookpad TechConf 2016 - DWHに必要なこと
Minero Aoki
•
45.4K views
メカジョさんとジュリアたん♡ (Mechajyo and Julia-tan) #JuliaTokyo #JuliaLang
Takeshi Kimura
•
5.5K views
Juliaでオンライン線形分類器つくった
Takeshi Ishita
•
4.3K views
R&D at Foodtech company - #CookpadTechConf 2016
Aki Ariga
•
34.1K views
Pyconjp2016 pyftplib
Shinya Okano
•
2.4K views
Python入門 コードリーディング - PyConJP2016
Shinya Okano
•
3.8K views
Cloud Native Hadoop #cwt2016
Cloudera Japan
•
5.5K views
Amebaにおけるレコメンデーションシステムの紹介
cyberagent
•
12.6K views
Sparkを活用したレコメンドエンジンのパフォーマンスチューニング&自動化
Nagato Kasaki
•
9.5K views
Introduction to Kanagawa Ruby Kaigi01 #kana01
Aki Ariga
•
4.9K views
Julia 100 exercises #JuliaTokyo
Aki Ariga
•
10.7K views
Ibis: すごい pandas ⼤規模データ分析もらっくらく #summerDS
Cloudera Japan
•
19.3K views
TEGNOLOGIA DE PUNTA
Angela yanez
•
304 views
I'm happy
Fer Nanda
•
221 views
Pbl muskuloskeletal sken_2
Amanda J Rumalatu
•
512 views
Jose F Ruiz - Los nuevos modelos de firma electrónica - semanainformatica.com...
COIICV
•
688 views
Nilis cert in info man - rb on 'info and know' man - 1 oct 11
NILISSL
•
562 views
13 nights of halloween
LauraAdServices
•
641 views
Notas Excel Evaluaciones
SkulleD42
•
298 views
Similar to Rubyistを誘うScalaの世界
(9)
Scalaで萌える関数型プログラミング[エッセンシャル版]
Ra Zon
•
2K views
Scalaで萌える関数型プログラミング[完全版]
Ra Zon
•
6.9K views
Scalaで萌える関数型プログラミング[1.1.RC1]
Ra Zon
•
2.1K views
Ruby on Rails on MySQL チューニング入門
だいすけ さとう
•
21.5K views
Java使いにとっての関数
amkt922
•
1.6K views
Beginners Scala in FAN 20121009
Taisuke Shiratori
•
619 views
Ruby で扱う LDAP のススメ
Kazuaki Takase
•
13.3K views
Rubinius Under a Microscope
高広 内山
•
1.6K views
scala.collection 再入門 (改)
Ryuichi ITO
•
5 views
Advertisement
More from Yuto Matsukubo
(10)
がんばれテックリード!JIRA芸人篇!!
Yuto Matsukubo
•
860 views
明日から使える気になるGo言語による並行処理
Yuto Matsukubo
•
915 views
Go/gRPCはじめました
Yuto Matsukubo
•
661 views
非エンジニア向け技術セミナーをした話
Yuto Matsukubo
•
542 views
GCPでSplatoonの戦績を分析する
Yuto Matsukubo
•
396 views
「オブジェクト指向設計実践ガイド」を読んだので誰かに意見聞きたい
Yuto Matsukubo
•
1.3K views
Rubyistを誘うScalaの世界 2.0
Yuto Matsukubo
•
2.6K views
はじめてのTDD
Yuto Matsukubo
•
949 views
Intoroduction to React.js
Yuto Matsukubo
•
1.5K views
受託開発でAnsibleを導入した話
Yuto Matsukubo
•
1.3K views
Recently uploaded
(20)
社内ソフトスキルを考える
infinite_loop
•
91 views
TestSIP (1).pdf
DeependraSingh712859
•
2 views
JSONEncoderで詰まった話
とん とんぼ
•
144 views
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
NTT DATA Technology & Innovation
•
192 views
ヘッドレス化したbaserCMS5とその機能
Ryuji Egashira
•
10 views
JSTQB_テストマネジメントとレビュープロセス.pdf
akipii Oga
•
245 views
AIEXPO_CDLE名古屋紹介
KotaMiyano
•
4 views
MC-800DMT intrusion detector manual
Vedard Security Alarm System Store
•
3 views
JSTQB_テストプロセスの概念モデル.pdf
akipii Oga
•
274 views
OIDC(OpenID Connect)について解説③
iPride Co., Ltd.
•
25 views
初学者のためのプロンプトエンジニアリング実践.pptx
Akifumi Niida
•
487 views
Üslup ve tercüme.pdf
1Hmmtks
•
2 views
コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話
Rakuten Group, Inc.
•
39 views
量子論.pdf
hiro150493
•
9 views
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
NTT DATA Technology & Innovation
•
9 views
触感に関わる共感覚的表現と基本6感情の対応関係の検証
Matsushita Laboratory
•
22 views
20230601_Visual_IoTLT_vol14_kitazaki_v1.pdf
Ayachika Kitazaki
•
72 views
統計学の攻略_統計的仮説検定の9パターン.pdf
akipii Oga
•
271 views
SoftwareControl.pdf
ssusercd9928
•
15 views
3Dプリンタって いいね
infinite_loop
•
64 views
Advertisement
Rubyistを誘うScalaの世界
Rubyistを誘う Scalaの世界 @Peranikov
ドーモ、 ルビースト=サン
Scalaistデス
今日はRubyistの皆様に Scalaの魅力を 伝えるために来ました
どうやってつたえるか • Rubyの魅力(と思われるもの)をScalaで再現す れば良い • 型をなるべく書かない(Rubyistに型を見せると 死ぬ)
Scalaは純粋な オブジェクト指向 である
1 + 2 これをな
1.+(2) +メソッド +メソッドの引数 こうじゃ
1.+(2) +メソッド +メソッドの引数 RubyでもScalaでも通る!
リスト操作
どっちのコードか? [1,2,3].map { ¦i¦
i * 2 }
正解:Ruby [1,2,3].map { ¦i¦
i * 2 } # => [2, 4, 6]
Scalaではこう書く List(1,2,3).map { i
=> i * 2 } // => List(2, 4, 6)
さらに短く List(1,2,3).map { _
* 2 } // => List(2, 4, 6) ※ _ には引数が代入される
おなじみのメソッド達 • min • max •
reduce • zip • unzip
Mix-In
RubyにはModule、 ScalaにはTraitがある trait HelloModule { def
hello = "Hello!" } trait WorldModule { def world = "World!" } class Hoge extends HelloModule with WorldModule val hoge = new Hoge() hoge.hello // => "Hello!" Traitを定義 TraitをMix-In
Open Class
暗黙クラスを使う implicit class MyString(val
s: String) extends AnyVal { def addScala = s + "Scala" } "Ruby is like ".addScala // => "Ruby is like Scala" 拡張したい型を指定 implicitにより暗黙的に型変換され、MyStringの メソッドが呼ばれる
Duck Typing
がんばればできる (structural subtyping) type Hogeable
= { def hoge(s: String):String } def addFuga(t: Hogeable): String = { t.hoge + fuga! } class Hoge { def hoge = hoge! } addFuga(new Hoge()) // => hoge!fuga! 共通するメソッドを持つ 型を定義 定義した型を 引数に指定 メソッドを持っていれば そのまま渡せる
結論 • Rubyの魅力(と思われるもの)は大体Scalaで再 現できた(はず) • Scala書こうぜ!
終わり
メタプログラミングは? • そんなものにふれてはいけない
メタプログラミングは??? • 一応ScalaにもReflectionやMacroが存在する • まだEXPERIMENTAL •
触ってみたが面倒くさかった (Rubyほどカジュアルに使えない)
Advertisement