タグ

ブックマーク / uehaj.hatenablog.com (6)

  • モナドはなぜHaskellでしか積極的に使われていないのか? - uehaj's blog

    (Haskellな日々になってるな…。) モナドというものがあり、Haskellで有名ですが、実際には、Java8のOptional、ScalaのOptionやfor内包表記などでは使用されています。ScalazというScalaのライブラリや、monadlogieというGroovyのライブラリでも使われています。 とはいえ、一般に、Haskellでのように積極的には使われていないというのが公平な見かたでしょう*1。Haskellでは当にいろんなものがモナド化されています。入出力(IO)、状態、失敗するかもしれない計算(Maybe、Either)、非決定計算、継続、パーサ(モナディックパーサ)、リーダ、ライタ、etc.etc……。 なぜこのような差が生じるのでしょうか? その前に、まず押さえておくべきことは、モナドは非常に汎用的な機能だということです。数学的定義はともかく、機能的に言うと、

    モナドはなぜHaskellでしか積極的に使われていないのか? - uehaj's blog
  • Java8におけるindyとLambdaの絶妙な関係、もしくはSAMタイプを継承する内部クラスの.classファイルはどこへ行ったの? - uehaj's blog

    JJUG CCC 2013 Springのさくらばさんのセッションで「Java 8の怖い話」として、Lambda式をJVM上で実行するにあたり、 invokedynamicを使っている Lambda式の仕様は、意味的にはSamタイプを継承する内部クラスのインスタンスのはずだが、lambda式を使っているJavaソースをコンパイルしても、内部クラスに対応する.classファイルが生成されない という話を聞きました。Lambdaの実行に、内部的にバイトコードを生成して使っている、という話だったのですが、indy使ってるってのは、良く考えると解せないです。Lambdaになんらかの動的な側面があるんでしょうかね??? ということで、調べてみました。 [:contents] 結論 結論から書くと、OracleJava8のJDKのJavacは、Lambda式の体を、SAMタイプを継承する内部クラス

    Java8におけるindyとLambdaの絶妙な関係、もしくはSAMタイプを継承する内部クラスの.classファイルはどこへ行ったの? - uehaj's blog
    tarchan
    tarchan 2013/08/21
    >Lambda式の本体を、SAMタイプを継承する内部クラスのメソッドではなく、コンパイル対象のクラスに直接所属するメソッドとしてコンパイルします。
  • 内部から見たVert.xとNode.jsとの比較 - uehaj's blog

    socket.ioがJavaやGrailsから扱えるかを調べている関係でvert.xを調べていて興味深かったので、こちらにあるVert.xの記事を翻訳してみました。JGGUG G*Workshopにおける杉浦さんのVert.x資料もお奨めです。 Vert.xは急速に発達つつあるサーバ・フレームワークです。 世にあまたあるサーバ・フレームワークのいずれもが、多様なプロトコルをサポートし、高速であることが特長であると主張していますが、Vert.xはそれらよりも一歩抜きん出ています。例えば、Vert.xは、サーバサイドのネットワーク環境の確立と操作も対象としています。言いかえれば、Vert.xは、単一サーバ上のデーモン実行だけでなく、クラスタリング環境での複数サーバデーモンの実行を考慮しているのです。 したがって、Vert.xを調査するにあたっては、どのように高性能を実現しているかだけではなく、

    内部から見たVert.xとNode.jsとの比較 - uehaj's blog
  • JJUG 2009 Fall発表資料「変容する言語Groovy」 - uehaj's blog

    JJUG CCC 2009 Fallに参加させていただきました。 聴講したセッションについては、クラウドを中心にさまざまな話題があり、興味深かったです。 GroovyのBOF発表に来ていただいた方は、ほとんどがGroovyをすでに使ったことがあり、また、既に業務で使った・使っているという方もいらっしゃり、興味を持っている方が多かったということがわかりました。 しかし、最初すべったですね。笑いをとるのはむずかしい。時間も急ぎすぎて5分余ったorz。 とりあえず発表資料をあげておきます。 Groovy, Transforming LanguageView more documents from uehaj. 発表のために作ったAST変換のコードはこちらです。 http://github.com/uehaj/kobo/tree/master/experimental/astx/src/test/

    JJUG 2009 Fall発表資料「変容する言語Groovy」 - uehaj's blog
  • Java 7における5つ(かそこいら)の変更点確定版 - uehaj's blog

    Java 7の最終変更点が確定したとのことで、記事を翻訳してみました。 Project Coin: The Final Five (Or So) まず最初に、Project Coinへ興味深い提案をお送りいただいたみなさま、思慮深いコメントをくださった方々、そしてJavaプログラミング言語を発展せしめんと欲するまさしく活力のあるコミュニティの皆様にお礼申し上げます。 これ以上の波乱もなく、JDK7に含められることが決定した最終的なProject Coinの変更は以下の通りです。 Switch文中での文字列の使用 自動的なリソース管理 ジェネリックなインスタンス生成のための型推論の改善(ダイアモンド ※注1) 単純化された可変引数メソッドの呼び出し より良い整数型リテラルのための、オムニバス提案(多くを含んだ包括的な提案) コレクションのための言語サポート JSR292のための言語サポート

    Java 7における5つ(かそこいら)の変更点確定版 - uehaj's blog
    tarchan
    tarchan 2009/09/02
    WebKitの採用とかはどうなったのかな?
  • TiddlyWiki+DropBoxはある意味Google Gears対抗 - uehaj's blog

    「ひとりWiki」として孤高の未知のエリアに到達しつつあるTiddlyWiki(※)っていうのがあります。 これおもしろい。「テキスト処理に特化した個人用のHTMLアプリにHTTPサーバなんか要らない」というコンセプト。つくりとしての面白さもあるんですが(つまりWikiなんでページ単位なんですが、多くの追加機能がJavaScriptを含むページ=プラグインで実装されていて、プラグイン間・データプラグイン間はタグを媒介に疎結合します。インポートによってページデータと実行コード区別せずに取り込める)、非常にユニーク。 これをDropBoxと組み合わせるとえらい便利です。 これって、私見ですが、おおげさかもしれませんが、次世代のアプリのありかたのひとつを予感させます。キーワードは「クラウド&HTML5&モバイル」です。(モバイルというか、「複数PCから共有」か) 考えてみると、WEBアプリ開発っ

    TiddlyWiki+DropBoxはある意味Google Gears対抗 - uehaj's blog
  • 1