SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
君(Scalaz)は僕(FSharpx)に似て
          いる

       pocketberserker


      2012 年 10 月 20 日
自己紹介




• 中山 / なかやん / ぺんぎん
• @pocketberserker / id:pocketberserker
• どこにでもいるふつーのサーガ大学院生
• F# / Haskell / Erlang / (Scala) / テスト
• 最近は FSharpx を触ってます
タイトルは釣り?
タイトルは釣り?




1. 立場は似ている?
タイトルは釣り?




1. 立場は似ている?
2. 状況も似ている?
タイトルは釣り?




1. 立場は似ている?
2. 状況も似ている?
3. 触っている人口数は圧倒的に異なる
Scalaz
Scalaz




“Scalaz: Type Classes and Pure Functional Data
              Structures for Scala”
FSharpx
FSharpx




    “FSharpx is a library for the .NET platform
implementing general functional constructs on top
             of the F# core library.”
GitHub で調べてみた(本日時点)
GitHub で調べてみた(本日時点)




• Scalaz. . . Contributors:21, fork:120
GitHub で調べてみた(本日時点)




• Scalaz. . . Contributors:21, fork:120
• FSharpx. . . Contributors:16, fork:44
  


     実際全然違う?
でも共通している
 部分もある
どのあたりが?
どのあたりが?




Core 部分は割と似ているものが並んでいる
    というわけでここからは Core の話
機能一部抜粋



• Validation
• Lens
• Iteratee
• etc. . .
なぜ似ている?
なぜ似ている?




Haskell 参考にしているし、FSharpx は Scalaz も
          参考にしていたりする
というわけで
というわけで




僕(FSharpx)が君(Scalaz)に似ている
ちなみに



• Scalaz から FSharpx に移植しようとすると
 詰む
ちなみに



• Scalaz から FSharpx に移植しようとすると
  詰む
• 文法や機能が違いすぎる
ちなみに



• Scalaz から FSharpx に移植しようとすると
  詰む
• 文法や機能が違いすぎる
• なので Haskell から FSharpx に移植するほう
  が楽
ちなみに



• Scalaz から FSharpx に移植しようとすると
  詰む
• 文法や機能が違いすぎる
• なので Haskell から FSharpx に移植するほう
  が楽
• とはいえ、妥協点は常に探らねばならない
Scalaz にあって FSharpx にないもの
Scalaz にあって FSharpx にないもの




• 技術的にあきらめているもの
Scalaz にあって FSharpx にないもの




• 技術的にあきらめているもの
• Free とか IO とか云々
共通の問題点




ライブラリが巨大すぎる!
というと?
というと?



• Haskell だったら十数パッケージに分解され
 ている
というと?



• Haskell だったら十数パッケージに分解され
  ている
• それが 1 個に集約されているということは. . .
というと?



• Haskell だったら十数パッケージに分解され
  ている
• それが 1 個に集約されているということは. . .
• うん、まぁ. . .
究極の問題




開発者全員が FSharpx(Scalaz)を使えるのか!
                            ?
まとまっていないまとめ



• FSharpx は Scalaz に似ている(部分がある)
• 言語の勉強には最適(な気がする)
• ライブラリがファットマン
• プロジェクトメンバー全員の錬度が高くない
 と仕事では. . .
続きはゆるふわ F# 勉強会(?)で!

Mais conteúdo relacionado

Mais procurados

Scala.js触ってみた
Scala.js触ってみたScala.js触ってみた
Scala.js触ってみたAsami Abe
 
ScalaでBacklogの通知bot作ったで
ScalaでBacklogの通知bot作ったでScalaでBacklogの通知bot作ったで
ScalaでBacklogの通知bot作ったでAsami Abe
 
Lets scala
Lets scalaLets scala
Lets scalasmdkk
 
Introduction of SQL Anti-pattern at Phpcon Hokkaido
Introduction of SQL Anti-pattern at Phpcon HokkaidoIntroduction of SQL Anti-pattern at Phpcon Hokkaido
Introduction of SQL Anti-pattern at Phpcon HokkaidoKenta Kawai
 
20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのかKatsunori Kanda
 

Mais procurados (7)

Scalalr
ScalalrScalalr
Scalalr
 
Scala.js触ってみた
Scala.js触ってみたScala.js触ってみた
Scala.js触ってみた
 
ScalaでBacklogの通知bot作ったで
ScalaでBacklogの通知bot作ったでScalaでBacklogの通知bot作ったで
ScalaでBacklogの通知bot作ったで
 
Api meetup LT
Api meetup LTApi meetup LT
Api meetup LT
 
Lets scala
Lets scalaLets scala
Lets scala
 
Introduction of SQL Anti-pattern at Phpcon Hokkaido
Introduction of SQL Anti-pattern at Phpcon HokkaidoIntroduction of SQL Anti-pattern at Phpcon Hokkaido
Introduction of SQL Anti-pattern at Phpcon Hokkaido
 
20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか
 

Destaque

私とTDDと研究と(TDDBC横浜LT)
私とTDDと研究と(TDDBC横浜LT)私とTDDと研究と(TDDBC横浜LT)
私とTDDと研究と(TDDBC横浜LT)pocketberserker
 
言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析pocketberserker
 
F#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみているF#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみているpocketberserker
 
F#のコンピュテーション式
F#のコンピュテーション式F#のコンピュテーション式
F#のコンピュテーション式pocketberserker
 
F#で学ぶ関数プログラミング入門?
F#で学ぶ関数プログラミング入門?F#で学ぶ関数プログラミング入門?
F#で学ぶ関数プログラミング入門?pocketberserker
 
FP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIterateeFP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIterateepocketberserker
 

Destaque (9)

GParsの?Actor Model
GParsの?Actor ModelGParsの?Actor Model
GParsの?Actor Model
 
私とTDDと研究と(TDDBC横浜LT)
私とTDDと研究と(TDDBC横浜LT)私とTDDと研究と(TDDBC横浜LT)
私とTDDと研究と(TDDBC横浜LT)
 
言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析
 
F#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみているF#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみている
 
F#のコンピュテーション式
F#のコンピュテーション式F#のコンピュテーション式
F#のコンピュテーション式
 
F#で学ぶ関数プログラミング入門?
F#で学ぶ関数プログラミング入門?F#で学ぶ関数プログラミング入門?
F#で学ぶ関数プログラミング入門?
 
FP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIterateeFP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIteratee
 
TDDBC東京 1.6 LT
TDDBC東京 1.6 LTTDDBC東京 1.6 LT
TDDBC東京 1.6 LT
 
TDDを研ぎ究める
TDDを研ぎ究めるTDDを研ぎ究める
TDDを研ぎ究める
 

Semelhante a Scala基礎勉強会 懇親会LT

Overview of Scala ~ Hacker Tackle
Overview of Scala ~ Hacker TackleOverview of Scala ~ Hacker Tackle
Overview of Scala ~ Hacker TackleDaisuke Kasuya
 
Scalaで学ぶ関数型言語超入門
Scalaで学ぶ関数型言語超入門Scalaで学ぶ関数型言語超入門
Scalaで学ぶ関数型言語超入門yujiro_t
 
Scala Daysに行ってみて
Scala Daysに行ってみてScala Daysに行ってみて
Scala Daysに行ってみてKota Mizushima
 
こわくないScala
こわくないScalaこわくないScala
こわくないScalaFScoward
 
Spark MLlib code reading ~optimization~
Spark MLlib code reading ~optimization~Spark MLlib code reading ~optimization~
Spark MLlib code reading ~optimization~Kai Sasaki
 
ScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChiselScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChiselKei Nakazawa
 
新宿Scala座2014 3月号スライド
新宿Scala座2014 3月号スライド新宿Scala座2014 3月号スライド
新宿Scala座2014 3月号スライドcosmo0920
 
セマンテックウェブとRDFDB
セマンテックウェブとRDFDBセマンテックウェブとRDFDB
セマンテックウェブとRDFDBHirosuke Asano
 
Yesodを支える技術
Yesodを支える技術Yesodを支える技術
Yesodを支える技術Hiromi Ishii
 
【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.js【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.jsYuto Suzuki
 
Scala.jsはじめました!
Scala.jsはじめました!Scala.jsはじめました!
Scala.jsはじめました!K Kinzal
 

Semelhante a Scala基礎勉強会 懇親会LT (16)

Scalaノススメ
ScalaノススメScalaノススメ
Scalaノススメ
 
20120527yesod
20120527yesod20120527yesod
20120527yesod
 
Overview of Scala ~ Hacker Tackle
Overview of Scala ~ Hacker TackleOverview of Scala ~ Hacker Tackle
Overview of Scala ~ Hacker Tackle
 
read parse-css
read parse-cssread parse-css
read parse-css
 
Scalaで学ぶ関数型言語超入門
Scalaで学ぶ関数型言語超入門Scalaで学ぶ関数型言語超入門
Scalaで学ぶ関数型言語超入門
 
Scala Daysに行ってみて
Scala Daysに行ってみてScala Daysに行ってみて
Scala Daysに行ってみて
 
こわくないScala
こわくないScalaこわくないScala
こわくないScala
 
Spark MLlib code reading ~optimization~
Spark MLlib code reading ~optimization~Spark MLlib code reading ~optimization~
Spark MLlib code reading ~optimization~
 
ScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChiselScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChisel
 
新宿Scala座2014 3月号スライド
新宿Scala座2014 3月号スライド新宿Scala座2014 3月号スライド
新宿Scala座2014 3月号スライド
 
セマンテックウェブとRDFDB
セマンテックウェブとRDFDBセマンテックウェブとRDFDB
セマンテックウェブとRDFDB
 
Yesodを支える技術
Yesodを支える技術Yesodを支える技術
Yesodを支える技術
 
【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.js【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.js
 
Recommend scala
Recommend scalaRecommend scala
Recommend scala
 
Scala.jsはじめました!
Scala.jsはじめました!Scala.jsはじめました!
Scala.jsはじめました!
 
Packagist
PackagistPackagist
Packagist
 

Scala基礎勉強会 懇親会LT