タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

JavaとFunctionalに関するnozomのブックマーク (8)

  • 「Javaに並列処理と関数型言語の要素を」、ティム・ブレイ氏 ― @IT

    これまでCPUはムーアの法則に従って高速化してきたが、今後、CPUは高速化よりも並列化が進む。「これまでは動作の遅いプログラムでも、来年には高速に動くというのが常識でした。しかし、これはもはや現在の状況には当てはまりません」。サン・マイクロシステムズでWebテクノロジー関連のディレクターを務めるティム・ブレイ(Tim Bray)氏は、近い将来にプログラマが直面する問題は、CPUのコア数が増えてハードウェアの並列化が進むのに対して、現在使われている言語の多くで並列プログラミングのサポートが十分でないことだという。 「UltraSparc T1では8コア32スレッドの並列処理が可能です。IBMやAMD、インテルもCPUのコアの数を増やしつつあります。JavaEEを使えばスレッドサポートによる並列化の恩恵にあずかれますが、そうでない言語も多くあります」。 ブレイ氏は、こうした問題に対して2つの方

  • はてなブログ | 無料ブログを作成しよう

    『春はまた巡る デイヴィッド・ホックニー 芸術と人生とこれからを語る』感想 『春はまた巡る デイヴィッド・ホックニー 芸術と人生とこれからを語る』読み終えて、とてもよかったのでかんたんに感想まとめ。 www.seigensha.com 書より、ホックニーの言葉 「私は描かずにはいられないのです。絵を描きたいとずっと思ってきました。小さいときか…

    はてなブログ | 無料ブログを作成しよう
  • Rubyのブロック構文のように、Javaでどういう終わり方をしようが確実にファイルをクローズする全行処理メソッドを作る - 矢野勉のはてな日記

    Java 昨日の日記ではノリノリで1時間くらいで実装してイテレータを公開したものの、例外が飛んだら終わり、というなんともつまらないオチで終わってしまいました。breakやreturnできないことは意図した動きだったんですが、なぜ例外のことを忘れるかなー....ブックマークしてくれたみなさん、あれは例外が飛んだらリークしますんですみません。トラックバックしてくれていたお二方(id:masanobuimaiさんとyuguiさん)、なんだか褒めていただいたのに申し訳ない。 書いたコードは検証してから挙げろってことですね。でも「情報は情報を出すところに集まる」というのを実感しました。公開したからこそ、ささっと指摘を受けられたと良いように解釈します。 さて、結局のところコードブロックから飛び出してもそれを確実に捉えてファイルをクローズするには、コードブロック自体を制御構造の中に入れるしかないわけです

  • 【レポート】ついにJavaにもクロージャ - James Gosling氏らJDK7へ導入提案 (1) Javaに来たるパラダイム変換クロージャ (MYCOMジャーナル)

    Java言語の主要アーキテクトであるGilad Bracha氏、Neal Gafter氏、James Gosling氏、Peter von der Ahé氏らは18日(米国時間)、Java言語において関数型やクロージャの導入を提案するホワイトペーパを公開した。現在、Javaには関数型やクロージャは用意されていない。同氏らの提案ではJDK7を目処にこれら機能を統合していきたいとしている。 関数型やクロージャは関数型言語やスクリプト言語には用意されていることが多い機能のひとつ。同機能をもった代表的なプログラミング言語にはPythonRubyPerlJavaScript、Common Lisp、Scheme、Smalltalk、Scala、C#などをあげることができる。もともとSmalltalkを使ってきたプログラマなどは、JavaにクロージャがないことをJavaに対する不満としてあげるこ

    nozom
    nozom 2006/08/24
    すべてのプログラミング言語はLispに近づいていく
  • 「Java vs. 関数型言語」って比較は酷だ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    Javaで高階プログラミング、ってそれ何よ!」にて: 結論を先に言えば、ちょっとシンドい。 やってみただけ。特にお勧めはしません。 お勧めしない理由は、表記が煩雑なので、書くのも読むのもバカバカしくめんどくさいからです。内容的には“多相の型付きラムダ計算”になります。だったら、なにもわざわざJavaで書かなくても…;まー、そうなんですが、僕みたいな年寄りからすると、産業界でメジャーな言語のひとつで、こんなお遊びができることが感慨深いわけです。 それはそうとして、このテの内容の記述に関して、Javaがいかに不向きかというと……(先を読んでください。) 課題とその説明 fが集合Xから集合Yへの関数であることを、f:X→Y と書きます。f:X→Y、g:Y→Zに対して、h(x) = g(f(x)) として定義される関数h:X→Zを、fとgの結合(composition; 合成)と呼び、f;g と

    「Java vs. 関数型言語」って比較は酷だ - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • Javaで高階プログラミング、ってそれ何よ! - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日の「プログラマのための述語論理」で、暗黙的に“総称的な高階関数”が出現してしまいました。それで今日は、意図的に「Javaで高階関数を扱えるだろうか? 」とやってみました。結論を先に言えば、ちょっとシンドい。 関数オブジェクト まずは、関数オブジェクトを次のインターフェースで定義します。 public interface Function<X, Y> { Y apply(X x); } Functionをimplementsするクラスのインスタンスは、型がX→Yの関数です(そう思いこむことにする)。f(x) の代わりに f.apply(x) と書く必要がありますが、我慢しましょう。 2引数関数はというと、次のインターフェースを使う手があります。 public interface FunctionOfArity2<X1, X2, Y> { Y apply(X1 x1, X2 x2); }

    Javaで高階プログラミング、ってそれ何よ! - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • Scala Center at EPFL

    An independent not-for-profit center established at EPFL. Focused on Let's improve Scala together. The Scala Center seeks to: Coordinate and direct the open source development of libraries/tools of broad benefit to the community. Substantially grow our community of open source contributors. Improve the landscape of Scala's libraries. Provide scaffolding to help the community develop, publish, find

  • Java : 高階関数 - lethevert is a programmer

    当初の目的とはだいぶ違う方向に進んでいってしまいましたが、そのおかげでだいぶJavaという言語に対する知見を深めることができたような気がします。 ということで、そろそろJavaで高階関数を書くテーマに挑戦できそうです。 - まず、ここで考える高階関数として、配列に対する次の3つの関数を挙げます。 collect 配列の各要素に対して操作を加え、その結果を別の配列として返す。 filter 配列の各要素に対してテストを行い、結果が真となったものだけからなる新しい配列を返す。 fold 配列の各要素に対する操作の結果を蓄積する。 この3つは、SICPでは、"2.2.3 Sequences as Conventional Interfaces"のところで、map, filter, accumulateとして登場する関数であり、Smalltalkでは、Collectionクラスの、collect:

    Java : 高階関数 - lethevert is a programmer
  • 1