タグ

ブックマーク / xuwei-k.hatenablog.com (9)

  • ScalaでFutureとEitherを組み合わせたときに綺麗に書く方法 - xuwei-k's blog

    組み合わせるとはつまりアレのことを書くのですが、一応それほど前提知識無くても理解できるように書いてみます。さて、なぜいきなりEitherとFutureか?というと play2とか使ってると、Futureがよく出てくる Futureをそこら中でAwaitしたらFuture使う意味がないので、Future[A]をmapやflatMapなどでどんどん連鎖させて、メソッドの型にFutureが大量に出現! Futureは非同期に行われる処理であり、そこで例外発生したら、その中に例外を含むしかない(単純に例外投げるわけにはいかないというか不可能) Scala標準ライブラリのFutureは、Throwable型で例外を保持できるようになってる 逆にいうと、Throwableでしか保持できない 例外の種類が多くなってきて、プログラムが複雑になった場合、Throwableではなくもっと限定された独自のエラー

    ScalaでFutureとEitherを組み合わせたときに綺麗に書く方法 - xuwei-k's blog
  • Scala祭でscalatest作者とproperty based testingの話をした - xuwei-k's blog

    明らかに祭の1日目の一番の収穫でした。 scalatest作者とは、Bill Vennersさんです。コップの共著者だったりもする方です。 https://github.com/bvenners まず、Scala祭の半年くらい前(?)の2015年6月頃の話 twitterで急にDM来たり、eed3si9nさんに仲介してもらってメールのやりとりする 具体例にはCogen(Coarbitrary)について聞かれて、scalapropsの作成経緯含め答えた覚え それで、その返信で scalapropsの一部取り込むことも考えてるんだけど、その場合のライセンスが(ry https://github.com/japgolly/nyaya も試したり、さらにscala.js対応もやろうとして 現状こんな感じでscalatest内にGenerator入れて試してるんだけど みたいな内容でした。たぶん。

    Scala祭でscalatest作者とproperty based testingの話をした - xuwei-k's blog
  • 1443641775

    よく「どうやって情報手に入れてるの?」みたいに聞かれますが、そんなの、ひたすら時間かけてgithubみたりメーリングリスト読んだり最近ではgitterの会話読んでるに決まってます。 どうやって(How)ではなく、なぜ(Why)、自分がそんなことをするようになったのかを、あらためて書いてみる気になったので書いてみたいと思います。 書こうと思ったのは、Howだけ書いても、Why書かないとあまり意味ないと思うことが多くなったからですかね。(この件に関しては) 無責任に大雑把にいうと、(どんな理由であれ)情熱みたいなものがあれば、Howは自然に身につきます、たぶん。 なお、少し長くなるし、自分語りっぽくなるし、いつも書いてるようなものとは少し方向性が違い、具体的なすぐ役に立つ技術的な内容*1は基出てこないので、期待してるものが違うと思う人は、ここで読むのやめたほうがいいと思います。 どれほどコー

    1443641775
  • 関数プログラミング交流会という勉強会で"Scalaにおける関数型並列並行プログラミング"という話をした - xuwei-k's blog

    ほぼ資料貼り付けるだけのエントリ。広く浅く話しただけで、それほど新しい情報とかあるわけではないです http://connpass.com/event/16193/ http://xuwei-k.github.io/slides/functional-parallel-concurrent-scala/#1 ゴチうさのくだり、それなりに笑い起こっていたけど、もう少し笑いとれるかと思ったけどそれほどでもなかった(えっそこ ちなみに、べつにすごくゴチうさ好きとかそういうわけでもないです。

    関数プログラミング交流会という勉強会で"Scalaにおける関数型並列並行プログラミング"という話をした - xuwei-k's blog
    clavier
    clavier 2015/09/14
    関数プログラミング交流会という勉強会で"Scalaにおける関数型並列並行プログラミング"という話をした - scalaとか・・・
  • ekmett先生のdiscriminationというライブラリの動画を見たので雑に要約してみた - xuwei-k's blog

    当に雑に(前半部分だけを)まとめただけなので、ちゃんと知りたい人は、元動画やライブラリのコードや、元論文読むとよいです http://hackage.haskell.org/package/discrimination https://www.youtube.com/watch?v=cB8DapKQz-I https://github.com/ekmett/contravariant/blob/v1.3.2/src/Data/Functor/Contravariant/Divisible.hs やる気がでたら、もう少し真面目な解説を後で別に書くかも知れませんし、書かないかもしれません。 先に簡単に自分の感想的なものを書いておきます。 ソートの話なはず、の動画を見ていたら、なぜか前半は「圏論」や「Hask」や「Contravariantなんちゃら」の話してて 「あれ、見る動画間違ったのかな

    ekmett先生のdiscriminationというライブラリの動画を見たので雑に要約してみた - xuwei-k's blog
  • 最近読んだ論文 - xuwei-k's blog

    以下のtweetしたように、最近それなりに、(主にHaskell関連の)論文読んでるのだけれど 最近、論文読むの楽しいと思うことがそれなりにあるけど、いや楽しいとかじゃなく無意識に時間があればずっと論文読み続けてるのが当たり前の状態にならないとだめだ。って自身に言い聞かせようとし出すような変な意識の高まり方してる 2015-07-18 02:30:31 via Twitter Web Client 一回読んだだけではすべてを理解できるわけでもないし、「うまく日語に要約して紹介」ですら結構頑張らないとできる気がしないけど、それなりに読んでるのを、とりあえず一覧でまとめておこうと思った次第。 昔は論文なんて全然読む習慣なかったし、読もうとしても(英語力と前提知識の問題で)全然読めなかったけど、少しでも読めるようになってくると楽しいですね。 あと「読んだ」というのは、 最初に読んだのは結構昔だ

    最近読んだ論文 - xuwei-k's blog
    clavier
    clavier 2015/07/20
    最近読んだ論文 - scalaとか・・・
  • モナドの本当の力を引き出す・・・モナドによる同期/非同期プログラミングの抽象化 - xuwei-k's blog

    以下の2つの続き ScalaでFutureとEitherを組み合わせたときに綺麗に書く方法 FutureとEitherの話の続き(ApplicativeとMonadの違い) 上記の2つ(特に最初の方)を読んだことを前提で書くので、読んでない人は先にそちらを読みましょう。 なんだか少し関連する話(?)で盛り上がっていて、書かないといけない気がしてきたので 非同期プログラミングの難しさとScalaのFuture そのtogetterの議論について色々書きたいこと*1もありますが、それは置いておき、表題の「モナドによる同期/非同期プログラミングの抽象化」について書きます。というか、(非同期プログラミングの話より)便乗してモナドとモナドトランスフォーマーの便利さを話したいだけかもしれません(?) 前回2つは「Future使って非同期にしても、だいたい関数の体同じでいけるよ」ということを書きました

    モナドの本当の力を引き出す・・・モナドによる同期/非同期プログラミングの抽象化 - xuwei-k's blog
    clavier
    clavier 2015/03/29
    モナドの本当の力を引き出す・・・モナドによる同期/非同期プログラミングの抽象化 - scalaとか・・・
  • jol(Java Object Layout)という、Javaのオブジェクトがどのようにメモリ上にレイアウトされるのか?というツールをsbtから便利に使えるようにする - xuwei-k's blog

    最近公式にopenjdkの一部になったらしい?ので、まだあまり有名じゃないかもしれませんが、以下のような便利ツールがあるの知ってますか? http://openjdk.java.net/projects/code-tools/jol/ もともと個人で以下のリポジトリで開発されてたらしいです https://github.com/shipilev/java-object-layout いくつか機能があるみたいですが、とりあえずorg.openjdk.jol.info.ClassLayoutというのが、なにか大量に同じクラスのインスタンスを生成する予定があって(たとえばActorとか?) 「それぞれのclassのインスタンスが、何バイト消費するんだろう?」 というのを正確に知って、全体のメモリ消費量の予測に役立てたりするのにとても便利っぽいです。*1試してないですが、原理的にJavaだろうがS

    jol(Java Object Layout)という、Javaのオブジェクトがどのようにメモリ上にレイアウトされるのか?というツールをsbtから便利に使えるようにする - xuwei-k's blog
  • FutureとEitherの話の続き(ApplicativeとMonadの違い) - xuwei-k's blog

    昨日書いたこれ ScalaでFutureとEitherを組み合わせたときに綺麗に書く方法 の中で、 実は今回の例だけだと、Applicativeの範囲でいけるので、必ずしもモナドトランスフォーマーは必須ではありません と書いたところ、以下のような反応をもらったので Applicative でダメな例気になる 2014-09-20 00:08:37 via Twitter for Websites 例を思いついたので、それも書いておきましょう。丁寧にScalaz初心者向けに説明するの疲れたので、以前よりは雑に要点だけ書きます、ご了承ください。今回も先にコード例のgist貼っておきます。 https://gist.github.com/xuwei-k/051c3b00129b7a0dfcd6 そもそも「Applicativeで範囲よい」「ApplicativeではダメでMonad必要」は、モナ

    FutureとEitherの話の続き(ApplicativeとMonadの違い) - xuwei-k's blog
  • 1