タグ

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

  • ScalazのEndo - xuwei-k's blog

    @markhibberd さんの Endo の話がわかりやすかったので、勝手に日語の説明をつけたスライドを作りました もとのスライド http://mth.io/talks/patterns-in-types-ylj 日語の説明つけたもの http://gist-slide.appspot.com/5607773/endo.md https://gist.github.com/5607773 あと、他にもスライド公開してたので、みんな読むといいよ Argonaut Purely-Functional Library Design in Scala Zippers, Comonads and Data Structures in Scala それと、scalaj-httpのRequestに関してこのパターン使えるなぁーと思ったので、作ってみた https://gist.github.co

    ScalazのEndo - xuwei-k's blog
    w650
    w650 2015/07/28
  • Scalaのマクロの基礎。評価タイミング、評価回数と、健全性 - xuwei-k's blog

    Scalaのマクロというより、一般的にマクロに共通する基であり重要な部分です。それをScala使って説明するだけです。 Scalaのマクロは、未だexperimentalという位置づけで、他の機能に比べれば仕様やAPIが変わりやすい状態です。そして、機能が搭載されてからあまり時間が経っていないこともあって*1あまり一般的に使われているとはいえない状態でしょう。しかし、Cなどのマクロとは違い、Scalaのものはある程度は格的にコンパイル時に抽象構文木を自由にいじれるものであり、使いこなせるようになってくるとなかなかおもしろいです。 マクロというと、ある程度の人はLispを思い浮かべると思いますが(?)、先ほど書いた「格的に抽象構文木いじれる」という点はまさにLispと共通する部分もあります(もちろん異なる部分も多くあります)。 つまり、これから説明することは、On Lisp*2 On

    Scalaのマクロの基礎。評価タイミング、評価回数と、健全性 - xuwei-k's blog
    w650
    w650 2014/09/01
  • CoproductとInjectを使ったFree Monadの合成とExtensible Effects - xuwei-k's blog

    Scaladays2014の写真がtwitter上で流れてきて「あーまたrunaroramaさん、Free Monadの話してるのかー」と思ったら、たしかにFree Monadの話もしてたみたいですが、それの発展形(?)的な感じで、Coproductや、Injectという型クラス(?)の話をしていたようです。 Woah, Coproducts (URL as replacement for transformer stacks look pretty cool! URL /cc @runarorama 2014-06-17 20:43:56 via Twitter Web Client それで、*1コードを読んでみたら、それなりにある程度理解できた気がするので、解説を書いてみます。*2 最初に断っておくと、タイトルに"Extensible Effects"と入れましたが、Extensibl

    CoproductとInjectを使ったFree Monadの合成とExtensible Effects - xuwei-k's blog
    w650
    w650 2014/06/23
  • sbt を理解するための sbt 自体のソースの読み方 - xuwei-k's blog

    sbt でわからないことがある場合、だいたい wiki をみる sbtのドキュメントはgithubのwikiからscala-sbt.orgに移りました! ソースを読む メーリングリストで質問する StackOverflowで検索 or 質問 というような選択肢になります。*1 それで、英語が微妙な自分の場合、結局ソースをみることが多いわけです。それで、今までそれなりにsbtのソースを読んでいるので、自分なりに思った sbtのソースのどこから読めばいいのか? 全体としてどういう構成になっているのか? をちょっと書いてみようかと思います。 (そろそろsbt0.12が出るはずですが)このblog書いている時点の安定版であるsbt0.11.2を基準にして書きます。まぁこれから書くようなことは、sbt0.12になってもあまり変わらないはずです。 1. まず Keys.scala 読め https:/

    sbt を理解するための sbt 自体のソースの読み方 - xuwei-k's blog
    w650
    w650 2013/10/03
  • Scalaにおける細かい最適化のプラクティス - xuwei-k's blog

    列挙順自体はとくに意味ありません。あと「どの最適化がどのくらい速くなるのか?」を詳細に計ったことはないですし、「原理的にこうなってるから(ry」というのを説明するに過ぎません。中には「JITで無意味になるようなどうでもいい細かすぎること」も書いてありますし、最適化のトレードオフとして失うものもあるので、そのあたり自己責任でお願いします。当に最適化が必要とされる場合は、以下のものを無闇に実行するよりまず計測したほうがいいのは、言うまでもありません。*1 1. private[this]をつかえ scalaのvalやvarは、private[this]にしたときのみ、直接のフィールドアクセスになります(それ以外ではメソッド呼び出し)。シングルトンのobjectの場合も同様です。private[this]をつけられる場合はできるだけつけましょう 2. なんでもかんでもListをつかうな 最初の

    Scalaにおける細かい最適化のプラクティス - xuwei-k's blog
    w650
    w650 2013/07/09
  • Play 2.1 のテスト中に、OutOfMemoryError などが出てテストが途中で止まる場合の対策 - xuwei-k's blog

    OutOfMemoryErrorでなくても、stacktraceにObjectOutputStreamがどうとか、java.net.SocketException: Socket closedとか、見慣れないよくわからないstacktrace出る場合もあります。かつ、テストが途中で止まっても、最終的な結果はsuccessと表示される場合もあります。 Play2.1からテストがforkされたJVM上で行われるようになったけど、これ URL が、Play側で設定されてないから簡単にメモリ不足でテストが死ぬ。のでこれ URL と同じようなことしないといけない 2013-02-05 15:18:24 via web テスト用のサーバー起動させると簡単にメモリ不足になってこの現象に遭遇するので、必ずjavaOptions設定しておきましょう。*1 簡単に解説しておくと、Play2.1から*2最近sb

  • Scala2.11から、case classやメソッドの22制限が緩和されるらしいですよ! - xuwei-k's blog

    https://github.com/scala/scala/pull/2305/files 試しに引数が200個あるメソッドや、case classくらいまでならいけた。それ以上で、例えば1000くらいになると、コンパイラが変なところで落ちるか、"ClassFormatError: Too many arguments in method ..."とかになる 2013-03-31 21:48:39 via web URL 22制限がなくなる件、微妙に反響あったから補足しておくと、2.11.0.finalがでるのはおそらく一年後くらいなので、それまでは今のままですよ…念のため 2013-04-01 21:04:55 via Twitter for iPad https://github.com/scala/scala/pull/2426 メソッドのパラメータは、最大254個までになるみたい

    w650
    w650 2013/04/02
  • 今まで読んだプログラミング関連の本 - xuwei-k's blog

    ちょっとした理由もあって、いい機会だからまとめてみようと思う。 順番はだいたい買った順にしてみたけれども、記録しておいたわけではないので、ある程度適当。 独習C 第4版 作者: ハーバート・シルト,柏原正三,トップスタジオ出版社/メーカー: 翔泳社発売日: 2007/12/06メディア: 大型購入: 1人 クリック: 23回この商品を含むブログ (16件) を見るおそらく初めて買ったプログラミングの。リンク先は4版だが、買ったときは3版。大学3年くらい。プログラマーになろうと決めて、入社するまでに、ある程度基礎的なことはできておいたほうがいいと考えた。どの言語にするか考えたが、やっぱりスタンダードにとりあえずC言語かな?と思い独学で勉強するために購入。 ハッカーと画家 コンピュータ時代の創造者たち 作者: ポールグレアム,Paul Graham,川合史朗出版社/メーカー: オーム社発売

    今まで読んだプログラミング関連の本 - xuwei-k's blog
    w650
    w650 2010/11/19
  • 1