タグ

2012年6月11日のブックマーク (4件)

  • Java8のラムダって高階関数じゃないの?って話 | システムアーキテクトのごった煮

    先日、関Javaに行った時、 「Javaのラムダは高階関数じゃないよ~」って教えて頂きました。 う~ん、確かにJavaは関数をファーストクラスオブジェクトとしてサポートしている訳ではないので、高階関数の定義から外れてしまうんだろうな~。。 ただ、クロージャはレキシカルスコープを伴うファーストクラスなので、完全にJavaは未サポートなんだけど、高階関数は ・引数として関数を取れる ・返り値として関数を返せる なので、Java8のラムダサポートでそれっぽく書けるんじゃないかな~って思ってました。 っで、少し興味がわいたので、Java8で高階関数チックに書いてみました。 まずは、僕が大好きなカリー化。ちなみに、カレーは関係ありません。 カリー化ってハスケル・カリーさんに因んで名付けられたんですね、ややこしい。 カリー化 public class CurryTest { static interf

    Java8のラムダって高階関数じゃないの?って話 | システムアーキテクトのごった煮
  • Java SE 8に導入されるのは、ほんとにクロージャ!? - Fight the Future

    Javaプログラマが悩むラムダとクロージャと匿名関数と - Fight the Future じゅくのblog http://d.hatena.ne.jp/jyukutyo/20111117/1321587651 の続き。 セットアップ ラムダ式の使えるJava SE 8のアーリービルドは、ここからダウンロードできます。 Java Platform, Standard Edition 8 Developer Preview ReleasesJava.net http://jdk8.java.net/lambda/ PATHを通せばセットアップ完了。 Java SE 8とか言いながら、ラムダ式が使える版は、 OpenJDK 7の最新版にラムダプロジェクトを足したものだそうです。 (ラムダ式が使えない版は、ちゃんとJDK8) The Lambda project has used sou

    Java SE 8に導入されるのは、ほんとにクロージャ!? - Fight the Future
  • はてなブログ | 無料ブログを作成しよう

    わたし的棚ぼた一万円選書 急に千葉さんに手渡された封筒、開けてみたら1万円札が1枚。何ごとかと思えば、同期の出張を代わったお礼をもらったらしい。 「葵はワンオペで育児してくれたから」と半分わけてくれました。 泡銭の1万円 これはもう、わたし的1万円選書をしろという思し召しなのでは……

    はてなブログ | 無料ブログを作成しよう
  • 第2回 abcモジュールによる抽象基底クラスの作成 | gihyo.jp

    抽象クラスとインターフェース C++には、抽象クラスという仕組みがあります。 抽象クラスとは、インターフェースのみを定義した純粋仮想関数というメンバ関数をもつクラスです。抽象クラスはそのままでは定義が完全ではないため、継承して純粋仮想関数をすべてオーバライドしなければインスタンスを作れません。 このような抽象クラスを用いることは、クラスのインターフェースを定義し、継承時にオーバライドしてほしいメンバ関数を明示する、という意味があります。 Python においては、そのようなインターフェースのみを定義するという機能が存在しません。そのため、クラスを継承する際にオーバライドするべきメソッドを明示し、オーバライドされていなければインスタンスを作れなくする、というような挙動をさせることは通常できません。 似たような挙動をさせるには、 未実装であることの印としてNotImplementedオブジェク

    第2回 abcモジュールによる抽象基底クラスの作成 | gihyo.jp