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

  • Lambdas in Java: An In-Depth Analysis

    InfoQ Software Architects' Newsletter A monthly overview of things you need to know as an architect or aspiring architects. View an example Memorial Day Sale: Save up to 60% on InfoQ Dev Summit Boston (June 24-25)

  • 2006-06-12

    これまで考察してきたクロージャの件ですが、まだまだ頭の中では発散しているのですけど、一旦、簡単にまとめておきたいと思います。 ただ書き散らかしているだけでは意味ない (いや、意味はあると思ってるんですけど。自己矛盾だ。) ですからね。 Rui さん、shiro さんのコメントに助けられて、今では、 手続きをファーストクラスオブジェクトとして扱える。 静的スコープを持つ。 無限のエクステントが保証されている。 の三つの基盤が揃うことで、クロージャが実現されていると考えるに至りました。 Scheme 以外ではどうか判りませんが、こと Scheme に於いては、上の仕様に立脚する形でクロージャが実現されていると考えて差し支えないと思っています。 ただ、言語設計の推移としては、shiro さんから頂いたコメントで示唆されている様に、動的スコープに於ける環境問題 (FUNARG problem) が

    2006-06-12
  • Martin Fowler's Bliki in Japanese - クロージャ

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

  • The Function of FUNCTION in LISP or Why the FUNARG Problem Should be Called the Environment Problem(訳)

    The Function of FUNCTION in LISP or Why the FUNARG Problem Should be Called the Environment Problem Joel Mose 原文 概要 多くの強力なプログラミング言語に共通するある問題が、 関数の自由変数にどんな値を割り当てるかを決めなければいけない場合に 発生する。 この問題を解くための異なる実装アプローチを考察する。 議論は、LISPの実装に集中し、 なぜ現在のたいていのLISPシステムが オリジナルのLISP1.5システムほど一般的でないのかを指摘する。 可能な限りALGOL風の用語での議論を試みたので、 LISPになじみのない読者も困難なくこの文章を読めるに違いない。 多くのプログラマは、 スタックを使って再帰関数の引数と局所変数の値を管理する事を 良く知っている (訳注1)。 具体的に

    tanimina
    tanimina 2010/02/17
    >>FUNCTIONは閉鎖的または非多孔的(nonporous)に関数をおおっている(このことから、Landinはクロージャ(閉包)という用語を使っている)。<<
  • Scheme:なぜSchemeにはreturnが無いのか

    あるいは、なぜcall/ccがプリミティブなのか、に関する一考察 (Shiro: 「なんでも継続」に入れようかと思ってたネタだけど、 あっちがいつ書けるかわからんので、忘れないようにこっちにまとめとく) (話の流れがあるので、誤りの修正以外のコメントは途中ではなく、一番下にお願いします) returnはどこだ? Aliceは、リストlisと述語手続きpredを取り、lisの各要素に順にpredを適用して、 predが真の値を返したら直ちにその要素を返すような関数findを 書くことを考えた。 (findは便利なので、実はsrfi-1に定義されてるけど、 Aliceはまあ自分の勉強のために書いてみることにしたと思いねえ)。 AliceはPerlなら良く知っている。Perlならこんな感じで書けるはず。 sub find { ($pred, $lis) = @_; foreach $elt (@

    Scheme:なぜSchemeにはreturnが無いのか
  • A Definition of Closures - selflearn @ ウィキ

    という記述と共にブログの記事が紹介されていました。Closureとは何なのか、そしてClosureについてまだよく分かっていないので、勉強がてら訳してみようと思いました。 ちなみにこの方、Googleの中の人です。2008/10/3時点の情報ではMicrosoft転職されたようです。

    A Definition of Closures - selflearn @ ウィキ
  • 1