タグ

クロージャに関するhassylinのブックマーク (6)

  • 『Javaにクロージャを』

    クロージャ(closure)とは、振舞そのものをカプセル化したもののことだ。SmalltalkやRubyなど、動的なオブジェクト指向プログラミング言語ではブロックとして親しまれている。メソッド抽出や、継承、委譲などの王道のオブジェクト指向テクニックでは再利用が難しいコードを、スマートに再利用できるのが大きな魅力だ(マーチン・ファウラーによるクロージャのエントリ)。 たとえば、ループの仕方は同じで、ループ中で呼び出すメソッドだけが異なるような以下のような処理は、割とよくある。こうしたコードは、ループ処理の部分だけ共通なので再利用したいのだが、再利用できそうでなかなかできなく、DRY(Don't Repeat Yourself)好きのプログラマとしては歯がゆい思いをする。 void doThis(MyLogic logic) { for (int i=0; i<100; i++) { logi

    hassylin
    hassylin 2009/06/11
    java7のリリース前ではこうなるのか。
  • 【コラム】Java API、使ってますか? (54) Java SE 7の要注目機能"クロージャ"はどうなるのか その2 | エンタープライズ | マイコミジャーナル

    クロージャの基形 前回はJava SE 7で導入される予定のクロージャについて、その概要とプロトタイプ実装の使い方を紹介した。今回は、実際にクロージャを用いたプログラムを書いてみたい。 BGGA版の仕様では、クロージャを使うための基となる演算子は「=>」となっている。クロージャを定義する基的な形は、この演算子と{}を組み合わせて次にようになる。 {パラメータのリスト => ブロックステートメント} クロージャを実行するにはinvoke()メソッドを呼び出す。たとえばリスト1は「1234」という数値を返すクロージャを定義し、invoke()を使って実行した例である。「{=>1234}」の部分がクロージャを表すブロックだ。 リスト1 FirstClosure.java - 最も基的なクロージャの例 public class FirstClosure { public static vo

    hassylin
    hassylin 2008/07/15
    javaもクロージャ対応
  • azito.com

    This domain may be for sale!

  • 第11回 クロージャによる超軽量並行プロセスの簡単実装法

    最近,ネットの一部で「Erlang」(発音はアーランまたはエアラン)というプログラミング言語が流行している(参考リンク)。Erlangはスウェーデンの通信機器メーカーであるエリクソンにて開発された言語で,エリクソン内部や通信業界はもちろん,Twitter(関連記事)などのオンライン・サービスでも採用されているという。 Erlangの特徴は,複数のプロセスが通信をしながら計算をする「並行プログラミング」を,言語の機能として強力にサポートしていることだ。C言語などの逐次プログラミング言語は,プロセスや通信の機能を内蔵しておらず,こうした機能をオペレーティング・システムに「外注」している。しかし,そのような外付けの仕組みは,メモリー消費量や速度,開発効率などの点でオーバーへッドが大きい。Erlangのような並行プログラミング言語では,プロセスや通信といった機能をプリミティブとして実装することによ

    第11回 クロージャによる超軽量並行プロセスの簡単実装法
  • naoyaのはてなダイアリー - Perl のクロージャ

    いつもお世話になってるあの人とかあの人とかが山口家の逆襲->perl-解説->クロージャというクロージャの解説ページをブックマークしてるのをきっかけに、 Perl のクロージャについて自分もちゃんと理解できてるのかというのを考えてみましたが、どうも微妙です。 クロージャについて、何でいまいち理解しきれてない感じがあるのかというと、クロージャがどういうものであるかは知ってるけど、クロージャをどういう時に使うと良いのかが具体的にあれとこれという感じで思い付かないからなのではないかと思った。 なので、Perl でクロージャを使ってる実装とかを見て、どんなときに使われるものなのかをリストアップして理解を深めてみよう..のコーナーです。 クラスにデータを保持するためのクロージャ 僕がぱっと思いついたのは Class::DBI の中で使われている Ima::DBI におけるデータベースハンドラのキャッ

    naoyaのはてなダイアリー - Perl のクロージャ
  • Martin Fowler's Bliki in Japanese - クロージャ

    http://martinfowler.com/bliki/Closure.html 動的言語に興味がでてくると、 クロージャやブロックと呼ばれる概念に出会うと思います。 C/C++/Java/C# などクロージャを持たない言語をご使用の方は、 どういったものなのかご存知ないかもしれません。 ここでは簡単にクロージャについて説明します。 クロージャを持った素晴らしい言語を使ったことある方にとっては、 あまり面白くない話かもしれません。 クロージャは長年使用されてきました。 私が最初に出会ったのは、おそらく Smalltalk だったと思います。 Smalltalk ではブロックと呼んでいました。 Lisp ではクロージャを多用しています。 Ruby でもクロージャが提供されています――多くの rubyist がスクリプト言語に Ruby を選ぶのはこのためです。 基的にクロージャとは、ブ

    hassylin
    hassylin 2006/05/31
    わかりやすい
  • 1