1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900・・・ という数列を知ってますか?カタラン数と言うらしいです。 詳しくはwikipediaみるなり、ググるなりしてください https://ja.wikipedia.org/wiki/%E3%82%AB%E3%82%BF%E3%83%A9%E3%83%B3%E6%95%B0 https://en.wikipedia.org/wiki/Catalan_number Eugène Charles Catalanさんという人がいたらしいです。 https://en.wikipedia.org/wiki/Eug%C3%A8ne_Charles_Catalan さて、標題のscalaz.Treeとカタラン数との関係ですが、こういう話好きな人はすでに知ってるのかも
sum function Nick demonstrates an example of ad-hoc polymorphism by gradually making sum function more general, starting from a simple function that adds up a list of Ints: scala> def sum(xs: List[Int]): Int = xs.foldLeft(0) { _ + _ } sum: (xs: List[Int])Int scala> sum(List(1, 2, 3, 4)) res3: Int = 10 Monoid If we try to generalize a little bit. I’m going to pull out a thing called Monoid. … It’s
https://www.dropbox.com/s/567s5mxlcyzzh8h/PurelyFunctionalConcurrency.pdf 資料貼り付けておくだけのエントリ。 runaroramaさん(FP in Scalaの作者かつScalazコミッタ)が、ハーバード大学で特別講師的な感じで講演してきたらしいです。 I'm finally an academic. Last night was my first time in a university classroom, and I was the teacher. 2015-05-06 02:29:32 via Twitter Web Client Slides from my lecture for the Scala Concurrency course at Harvard URL 2015-05-07 09:27:2
以下の2つの続き ScalaでFutureとEitherを組み合わせたときに綺麗に書く方法 FutureとEitherの話の続き(ApplicativeとMonadの違い) 上記の2つ(特に最初の方)を読んだことを前提で書くので、読んでない人は先にそちらを読みましょう。 なんだか少し関連する話(?)で盛り上がっていて、書かないといけない気がしてきたので 非同期プログラミングの難しさとScalaのFuture そのtogetterの議論について色々書きたいこと*1もありますが、それは置いておき、表題の「モナドによる同期/非同期プログラミングの抽象化」について書きます。というか、(非同期プログラミングの話より)便乗してモナドとモナドトランスフォーマーの便利さを話したいだけかもしれません(?) 前回2つは「Future使って非同期にしても、だいたい関数の本体同じでいけるよ」ということを書きました
わざと両方のタイトルをblogのタイトルに入れてみました(ながい・・・) レビューに少しだけ関わりました。自分が翻訳したわけではありません。あくまでもレビューです 原著 Functional Programming in Scala Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド (impress top gear) 作者: Paul Chiusano,Rúnar Bjarnason,株式会社クイープ出版社/メーカー: インプレス発売日: 2015/03/20メディア: 単行本(ソフトカバー)この商品を含むブログ (7件) を見る http://book.impress.co.jp/books/1114101091 作者達はおそらく訳されて今の時期にでることをあまり知らない?だろうから、知らせるのと感謝の意を伝えるtweet↓(そしてサンプ
自分の発表資料 http://shibuya-java.connpass.com/event/7060/
資料一覧 toggetterまとめ ニコ生 大量にキャンセルでるのかなー?と思っていたら、まぁ想定の範囲内で、結局70人くらい?は来ていたようだし、1〜2割の人しか理解できなくて \ わからない / \ 何言ってんだこいつ / 的な声が多数上がるかとおもいきや、思っていたよりは評判がよかったみたいです。軽い気持ちで開催したけど、そういえばこの規模の勉強会を自分で主催して開催するの始めてですね。それほど問題なく無事に終わって良かったです。 上のリンクからもたどれますが、一応ここにも自分の資料貼り付けておきます Scalazの歴史と概要 自分の発表、さすがに1時間だと時間あまるかとおもったけど、そうでもなかったですちょうどよかったですね。「歴史と概要」というタイトルですが、コミッタ紹介したり、自分の話したり、関連ライブラリ紹介したり、とにかく話したいこと詰め込んだ感じです。 質問されたりして、
class: center, middle # Scalazの歴史と概要 <a style="font-size: 10%" rel="license" href="http://creativecommons.org/licenses/by/2.1/jp/"><img alt="クリエイティブ・コモンズ・ライセンス" style="border-width:0" src="http://i.creativecommons.org/l/by/2.1/jp/88x31.png" /></a> --- class: middle <img src="https://pbs.twimg.com/profile_images/1931553270/xuwei.gif" width="100" height="100" /> - twitter [@xuwei_k](https://twitter.
https://github.com/xuwei-k/twitterz Inject typeclassについては、先日書いたこれ CoproductとInjectを使ったFree Monadの合成とExtensible Effects 読んでください 単にFreeだけではなくOperational Monad使ってます。 名前、twitter4zにしたかったけど、ねこはるせんせーが、以前その名前で作ってたので、被るとややこしいしやめました。 これ、やはりものすごく単純作業になるのですが、もう少しどうにかならないか・・・。マクロかコード生成・・・? あと、Interpreterを切り替える需要がないと、IOモナド(とReaderモナド合わせたもの)とあまり変わりがないというか、わざわざ分けて定義したりFreeとCoyonedaに包む分だけ、ライブラリ作成者側はちょっと面倒な気がしましたが、
以前「怖いScala」のときに紹介したように、すでに他の人が作ったクラス図が存在したり http://leifwarner.net/scalaz.svg また、自動で生成されるクラス図のサイトかなり昔に作ったこともありますが http://class-diagrams.herokuapp.com/scalaz.MonadPlus.svg https://github.com/xuwei-k/heroku-class-diagrams また別のもの作りました。 継承関係を線で結んで表すのもいいけど、いわゆる「ベン図(Venn diagram)」という、 論理和とか論理積を表すときによく使われるような、円が重なっていて集合の関係がわかりやすいやつ使ったらどうかな?と思って、svg-editというオンラインのSVGエディタ使って、地味に作ってた、結構時間かかった(なんて暇人なのでしょうか・・・)
SetがFunctorではない理由を延々と説明します。最初これ http://failex.blogspot.jp/2013/06/fake-theorems-for-free.html を訳そうとしましたが、英語力と理解力のなさにより断念し、中途半端な翻訳になるなら、自分なりに書き下そうという結論になりました。内容は上記の記事と半分以上被ると思います。あと、上記の記事書いた人は「Scalazのコミッターであり、おそらくekmettの同僚であり、ermine-languageのコミッター」な人です。よってオススメなので、そっちも読みましょう。*1 以下、Scala以外の言語でも大概は当てはまると思いますが、一応Scala(というか、Scalaz)を念頭において書いていきます。 さて、プログラミングにおいて、Setとは一体何でしょうか? とりあえず「要素の重複を持たないデータ構造」といえるで
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く