Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

lambdaに関するlizyのブックマーク (30)

  • ラムダ式とストリームAPIでJavaプログラミングはここまでシンプルになる!--Java SE 8に今すぐ移行すべき理由 - builder by ZDNet Japan

    「大きく進化したJava SE 8は企業に多くのメリットをもたらす。プロジェクト・マネジャーやアーキテクトも、今すぐ移行に取り掛かるべき」と訴えるJavaエバンジェリストの寺田佳央氏。ラムダ式とストリームAPIを例にとり、Java SE 8によるプログラミングの特徴と利点を語った。 2014年3月にリリースされた「Java SE 8」の大きな変更点の1つは、新たな言語機能として「ラムダ式(Lambda Expressions)」が導入されたことだ。同機能を使うことで、開発者は従来よりも効率的にプログラムを書けるようになる。また、併せて導入された「ストリームAPI(Stream API)」を使用することで並列処理の実装が容易となり、マルチコア・プロセッサの能力を生かしたハイパフォーマンスなアプリケーションを迅速に作れるようになる。 日オラクルのJavaエバンジェリスト 寺田佳央氏は、企業の

    ラムダ式とストリームAPIでJavaプログラミングはここまでシンプルになる!--Java SE 8に今すぐ移行すべき理由 - builder by ZDNet Japan
  • Java SE 8のラムダ式はどう実現されたのか?──実装の経緯、内部的な仕組みを理解する - builder by ZDNet Japan

    Java SE 8で導入されたラムダ式は、どのような仕組みで実現されているのだろうか? ラムダ式をより深く理解したいと考える読者にとって、これは気になるテーマの1つだろう。その秘密をお教えしよう。 Java SE 8で導入されたラムダ式は、Javaの言語仕様の歴史において最大級の変更だとされている。ただし、これはあくまでもJava言語の文法レベルの話であり、Javaプログラムを実行するJava仮想マシン(JVM)に新たな仕組みが導入されたわけではない。つまり、言語仕様に関する旧バージョンとの相違はコンパイラとランタイムが吸収し、バイトコードレベルでの互換性は保たれているということだ。 それでは、このような大きな変更を、既存のJVMの仕組みの中でどのように実現したのだろうか。それを知ることは、ラムダ式をより深く理解する手助けとなるかもしれない。Java SE 8のラムダ式実現の経緯と仕組みに

  • Java SE 8 Lambda & Stream API Overview from History

    DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ...............................................

    Java SE 8 Lambda & Stream API Overview from History
  • ラムダ式でステップアップ! C#のプログラムから汎用的なアルゴリズムを切り出すことで、LINQについての理解を深めよう

    1. はじめに プログラミング言語 C#では、C# 3.0から「ラムダ式」と呼ばれるものが使えるようになり、プログラムをより簡潔に記述できるようになりました。そして、それにより、LINQ(Language INtegrated Query:統合言語クエリ)という機能が便利に使えるようになりました。 この記事では、基に立ち返って、どのようにしてアルゴリズムを記述し、それを利用するかを考えたいと思います。 汎用的なアルゴリズムをどのように記述すると良いのか、そしてそのアルゴリズムがどのように使われると良いのか、を述べます。その中で、なぜラムダ式が便利なのか、その理由が分かってもらえれば幸いです。 また、ラムダ式がどのような仕組みなのか、それについても解説します。 LINQの仕組みや意義についても同時に理解していただけることと思います。 次の記事の姉妹記事です。そちらでC++用に書かれた記事を

    ラムダ式でステップアップ! C#のプログラムから汎用的なアルゴリズムを切り出すことで、LINQについての理解を深めよう
  • Java SE 8で変わるJava EE開発──ラムダ式と並列処理用ライブラリで、エンタープライズ・アプリケーションの応答性能を高める - builder by ZDNet Japan

    Java SE 8以降の開発ではfor文の利用頻度が減る。ラムダ式とStream APIが中心に Java EE 7から、サーバ・サイドにおいてもスレッド(並列処理)の実装が可能になりました。具体的には、「Concurrency Utilities for EE 7」により、スレッドをアプリケーション・サーバの管理下で動かせるようになっています。また、Java SE 8では、並列処理の実装を支援するクラスとしてCompletableFutureが追加されました。これらのAPIを組み合わせることにより並列処理の実装がどう楽になるのかを、次の例題で考えてみます。 この処理をJava SE環境で実装するとしたら、一般的には次のようになるでしょう。 手順(1):固定長のスレッド・プールを持つExecutorServiceオブジェクトを生成する 手順(2):ExecutorCompletionSer

    Java SE 8で変わるJava EE開発──ラムダ式と並列処理用ライブラリで、エンタープライズ・アプリケーションの応答性能を高める - builder by ZDNet Japan
  • Efficient data transfer through zero copy

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Efficient data transfer through zero copy
  • ラムダ式で本領を発揮する関数型インターフェースとStream APIの基礎知識

    前回の「知っといてムダにならない、Java SE 8の肝となるラムダ式の基文法」では、Javaでのラムダ式の記述方法について見てきました。 今回はラムダ式の導入によってより効果を発揮するJava 8の新機能について見ていきます。今回のJavaのバージョンアップではラムダ式の導入と共に、多くの関数型インターフェースを扱うAPIが追加されています。 今までJavaをやっている人の中には「Java 8の新しい機能を試してみよう」と思っている人も多いことでしょう。しかし、「ラムダ式」という新しい書式に加えてAPIに数多くのクラスやインターフェースやメソッドが追加されていて、その多さに拒否感を持ってしまう人もいるかと思います。 しかし、多くの新機能は幾つかの基盤となるパターンがあり、多くの細かい機能はそれらを拡張したものになっています。今回は、その中で「汎用的に使える関数型インターフェース」「ラム

    ラムダ式で本領を発揮する関数型インターフェースとStream APIの基礎知識
  • もしもラムダの中で例外が発生したら(前編) - Taste of Tech Topics

    ある日、 id:cero-t がJJUGの重鎮たちと話している中で、とある宿題をもらいましたとさ。 「Java8のラムダの中で例外が発生したら、どうなるんだろう?」 こんにちは、アキバです。 もう皆さんはJava8を使ってみましたか? とりあえずインストールしてみた人! ・・はーい (おまえか という冗談はさておき、 今回は、id:cero-t に代わって私が冒頭のお題を調べてみました。 1. SerialStreamで動かしたラムダで例外が発生したら まずは、小手調べにシングルスレッドの場合を見てみましょう。 検査例外が発生するようなコードをラムダに書いてみると、コンパイルエラーになります。 こんなコードです。 try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(W_FILENAME))) { // writer.

    もしもラムダの中で例外が発生したら(前編) - Taste of Tech Topics
  • Java 8 ローンチ Q&A

    Java 8は,長年に渡って最も待望されていた,プログラム言語のアップデートのひとつだ。今回のリリースでは日付APIやストリームAPI,ラムダ式といった新機能が導入される一方で,PermGenが廃止されるなど,総合的に見て望ましい方向の改良が行われている。我々はリリースの詳細を知るため,Java Platformグループでソフトウェア開発を担当する,Oracle VPのGeorges Saab氏に話を聞いた。 InfoQ: ラムダプロジェクトの経緯に詳しくない読者のために,今回導入される実装がどのようなものか,簡単に説明して頂けますか? 言語とVMとライブラリがすべて協調して関与するような改良は,今回が初めてではないかと思うのですが。 過去のリリースで実現された言語機能のほとんどは,その3つの領域のいずれかひとつだけに影響するものでした。あるいはメジャーリリースを機会として,それぞれの領域

    Java 8 ローンチ Q&A
  • C++11lambdaを使おう: Gentlesoft Developer's Blog

    Xcodeを4.4.1にバージョンアップする際何気なくリリースノートを眺めていたら、Apple LLVM complier 4.0でlambdaを含むC++11に準拠とある事を発見したので、早速C++11lambdaを実験してみる事にしました。 lambdaについて λ関数とは何かという事から解説すると稿の目的から外れるのでそれはWikipediaにでも任せて、一般的にプログラミング言語で使われるlambda関数について解説します。一般に関数の機能を持つ言語では、事前に別の場所で定義された関数を別の場所から呼び出して使用します。lambda関数は事前に定義を行わず、関数が実行される文中に直接記述する名前のない関数の事です。文中で定義されたlambdaは変数に格納して別の場所で使用したり、他の関数にパラメータとして渡したりできます。 Objective-CではBlocksとしてこの機能が提

  • Java 8を可能にしたJava 7の機能

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Java 8を可能にしたJava 7の機能
  • Objective-C++でBlocksの代わりにC++11のlambdaを利用する

    プログラミング (iOS, JavaScript, Jenkins, Sikuli) とMaciPhoneなどの話題が中心のブログ Clang Language Extensionsによると、C++11のlambda式からBlocksポインタへの変換が自動で行われるみたいなので試してみました。 なお、確認にあたって利用したXcodeのバージョンは5.0 (5A1412)です。 簡単な例 拡張子を.mmにしておけば、lambdaで次のように書くことができます。 auto cmptr = [](id x, id y) -> NSComparisonResult { return [x compare:y]; }; auto array = @[ @"spam", @"foo", @"bar", @"bazz" ]; auto sorted = [array sortedArrayUsingC

    Objective-C++でBlocksの代わりにC++11のlambdaを利用する
  • Java8のlambda構文がどのようにクロージャーではないか - きしだのHatena

    Java8にlambda構文が入りましたが、これはクロージャーではない、とされています。 では、どのように「クロージャーではない」のか、ちょっと見てみます。 まず、lambdaを返すメソッドを定義します。 public static Supplier<String> createMessenger(String name, String address){ return () -> { return String.format("私は%s、%sに住んでる", name, address); }; } 呼び出すと、こんな感じでSupplierを受け取ります。 Supplier<String> messenger = createMessenger("きしだ", "ふくおか"); このSupplierを実行すると、次のようになります。 System.out.println(messenger.

    Java8のlambda構文がどのようにクロージャーではないか - きしだのHatena
    lizy
    lizy 2013/05/22
    従来通り?finalの変数しか触れないぽい
  • Java8で体験するオブジェクトと関数の狭間 - きしだのHatena

    Java8でlambda構文が導入されることで、Java言語も関数型のような性質をもつことになりました。 関数型の性質として大事なことのひとつに、関数を戻り値として返せるということがあります。lambda構文によって、Javaでも表記上は関数を戻り値として返すことが可能になったわけです。 で、関数を戻り値として返せるとどうなるかというと、関数をオブジェクトのように使えるようになります。まあ、Javaでは関数といっても普通のオブジェクトとして扱われるので、関数としてオブジェクトのようなものが記述できる、ということになります。 では実際に、オブジェクトのようなものを関数として記述してみます。 public static Function<String, Object> myFunc(String name, String address, LocalDate birthday){ return

    Java8で体験するオブジェクトと関数の狭間 - きしだのHatena
  • United States

    Doctors weaponize AI in insurance battles over patient care authorizationsPhysicians are pushing back against automatic denials from healthcare insurance providers by allowing AI tools to write their appeals.

    United States
  • Java 8 で Scala のような何かを使う - seratch's weblog in Japanese

    Java 8 では JSR 335: Lambda Expressions が取り入れられます。 これを使うと Pure Java でありながら「どう見ても Scala」というコードが書けるようになります。 主に私がメンテナンスしている ScalaFlavor4J というライブラリがあります。 https://github.com/m3dev/scalaflavor4j Java 7 まではこんな感じで使う必要がありました。 Seq.apply(1, 2, 3, 4, 5).filter(new F1<Integer, Boolean>() { public Boolean apply(Integer i) { return i > 2; } }); // -> Seq.apply(3, 4, 5) しかし、Java 8 ではこんなにシンプルに書けてしまいます。 Seq.apply(1,

    Java 8 で Scala のような何かを使う - seratch's weblog in Japanese
  • C++ - C++ における関数スタイルのプログラミング

    図 6 を見ると、ラムダ式で変数と値を取得する方法を、プログラマが完全に制御できることがわかります。しかし、これによって値を使用するという考え方は保持できますが、複雑なデータ構造を値として効率よく操作することには役に立ちません。 不変データ型 不足しているのは、一部の関数型プログラミング言語にあるような効率的な不変データ構造です。このような言語では、不変データ構造は共通データを共有するため、非常に大きくなった場合でも、効率性を高めることができます。データを共有するデータ構造を C++ で作成するのは簡単です。データを動的に割り当てるだけで、各データ構造がそのデータへのポインターを保持します。残念ながら、共有変数の有効期間を管理するのが難しくなります (ガベージ コレクターが普及したのはこのためです)。さいわい、C++ 11 には、std::shared_ptr テンプレート クラスで共有変

    C++ - C++ における関数スタイルのプログラミング
  • ラムダ式、JAR脱獄、JavaScript/Node.jsに接近するJDK 8、そして9へ

    ラムダ式、JAR脱獄、JavaScript/Node.jsに接近するJDK 8、そして9へ:JavaOne Tokyo 2012まとめレポート(後編)(1/3 ページ) Lambda、Jigsaw、Nashornとは 4月4日と5日の2日間に渡って開催された日オラクル主催のJava技術者向けイベント「JavaOne Tokyo 2012」では、全国からJava開発者が集まり、Java周辺の最新動向や技術的なTips、活用事例などの話題に盛り上がった。 レポートの前編では、Java SE/EE/MEそれぞれの現状と今後の動向に焦点を当てて紹介した。後編は、Java SE/JDKについて、「Project Lambda」「Project Jigsaw」、そして新しいJavaScriptエンジンである「Nashorn」に関するセッションの様子をレポートする。 「Project Lambda」の

    ラムダ式、JAR脱獄、JavaScript/Node.jsに接近するJDK 8、そして9へ
    lizy
    lizy 2012/04/23
    リスト8がlinqぽい|バージョン固定のパッケージングが出来るのはうれしい
  • Project Lambda

    このエントリは Java Advent Calendar 2011 の一環で、第 1 日目のエントリーです。 やっぱり、櫻庭といえば Java SE の新しいところでしょう (これ去年も書いたなぁ ^ ^;;)。ということで、Java SE 8 の目玉機能となっている Project Lambda を取りあげます。 結果的に超長文になってしまいましたww 厳密にいえば、Lambda はクロージャではありません。 追記: ここでいっているクロージャはレキシカルスコープが使用できる無名関数のことを意味しています。 (るとさん、コメントありがとうございました) では、ラムダ式とはなんなのか? それはタスクを簡単に書くことを目的とした、単一メソッドのインタフェースのインスタンス生成を簡単に書くための簡易記法です。ようするにシンタックスシュガーでしかありません。 ここでいうタスクは、特にパラレルに処

    lizy
    lizy 2011/12/02
    まあレキシカルスコープがなくてもクラスで似たようなことは出来るのかな、すごく冗長になりそうだけど|最後の例はlinqにそっくり?
  • C#、ScalaのシンタックスをベースにしたJavaのラムダ式

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    C#、ScalaのシンタックスをベースにしたJavaのラムダ式