タグ

lambdaに関するtarchanのブックマーク (20)

  • Java SE 8のラムダ式はどう実現されたのか?──実装の経緯、内部的な仕組みを理解する - builder by ZDNet Japan

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

  • メールにパスワード付きzipを添付して「パスワードは別途お送りいたします」とする慣習がめんどくさいのでなんとかした - Qiita

    あの慣習 メールにパスワード付きzipを添付して「パスワードは別途お送りいたします」とする慣習、ありますよね。 自分からはやらないけど、相手に合わせてやらざるを得なかったりしてめんどくさい。 ここでは、このやり方の是非は問題にしません。 どんなに是非を説いても、この慣習があるという状況は変わらないので。 そして、この慣習を無くすことも考えません。 そういうのは巨大な力を持った何かにおまかせします。 昔のエラい人は言いました。「長いものには巻かれろ」と。 ただし、巻かれ方は考えたほうがいいと思うのです。 スマートな巻かれ方を考える 巻かれるにあたって、解決したいことはただ一つ。めんどくさくないこと。 このためにWebシステム作って、ブラウザ開いてどうのこうのなんてやってると末転倒です。 可能な限り、普通のメール送信に近い形で実現したい。 というわけで、あれこれ考えた末、一部の制約を許容しつ

    メールにパスワード付きzipを添付して「パスワードは別途お送りいたします」とする慣習がめんどくさいのでなんとかした - Qiita
  • あなたが「サーバレス」に本腰を入れて取り組む必要性を説明しよう | readwrite.jp

    数年前から「サーバレス」や「Lambda」、「NoOps」といった単語が広まっている。2011年に大きな話題を呼んだレポートの存在を知らない人はいないだろう。さて、一部のビジネスオーナーたちが開いているカクテルパーティでは、そろそろこういった考えを見直すべき時が来るのではないかと噂されているらしいが、当にそんな時は来るのだろうか? いいや、来ないだろう。 電気が産業革命にとって欠かせない要素であったように、サーバレスアーキテクチャも企業にとって無くてはならない重要なものである。 サーバレスアーキテクチャは、エンジニアがシステムの「運用」ではなく「ビジネス」に注力できるようになる画期的な試みだ。トースターやiPhone、冷蔵庫を電源につなぐような感覚と同じレベルの手軽さで、その処理能力を我々に提供してくれる。産業革命を支えてきたものは水車から水蒸気、電気と変遷してきたが、ソフトウェアの場合

    あなたが「サーバレス」に本腰を入れて取り組む必要性を説明しよう | readwrite.jp
  • もりひろゆきの日々是勉強

    このポストはC# Advent Calendar 2016の12月17日分です。 毎年いろんなポストでC# Advent Calendarには参加していたのですが、今年ほど書くことに困ったことはありませんでした(^^; 既にカレンダーにある記事のバリエーションも多く、なかなか既に多くファンが多いC#関連で興味を引くようなポストは書けなさそうなので、ちょっとしたTipsなのですが、Visual Studioのツールボックスについて書いてみたいと思います。 まずは基から…。 ツールボックスの基 ツールボックスは、開発で利用する部品の格納庫のような役割を担うウインドウです。 Visual Studioのワークスペース上に表示されている内容に応じて、ドラッグアンドドロップ操作で部品を格納したり、格納されている部品を配置することができます。 たとえば、ワークスペース上にWindowsフォームアプ

  • JJUG CCC 2014 Springに参加してきました - 達人プログラマーを目指して

    日、日Javaユーザーグループ(JJUG)主催のCCC 2014 SpringというJavaの勉強会に行ってきました。会場は、ベルサール西新宿で、都営大江戸線都庁前のA5出口を出て、新宿中央公園の5分くらい歩いたところにありました。今はスマートフォンで地図を確認しながら行けるので、初めての場所でも方向音痴の私でも電車の駅さえ間違わなければ大丈夫ですね。 CCCというのはCross Community Conferenceの略で、さまざまなコミュニティーの交流の場となる会議という趣旨でしょうか?このCCCというイベントは2012から開催されているようなのですが(CCC | 日Javaユーザーグループ)、今回初めて参加させていただきました。残念ながら個人的な都合から、基調講演と午後の前半のセッションのみで後半と懇親会には参加できませんでしたが、参加したセッションについてまとめます。その他

    JJUG CCC 2014 Springに参加してきました - 達人プログラマーを目指して
  • http://itknowledgeweb.blog.fc2.com/blog-entry-40.html

  • 知っといてムダにならない、Java SE 8の肝となるラムダ式の基本文法

    ついにJava SE 8、つまりJDK 8が正式リリースとなりました(日時間3月19日、早朝)。連載「Java 8はラムダ式でここまで変わる」では、今までJavaの経験はあっても「ラムダ式は、まだ知らない」という人を対象にラムダ式や、それに関連するJava 8の新しいAPIについて解説していきますので、正式リリースされたJava SE 8を使いこなせるように、ぜひご愛読ください。 前回の「初心者のためのJavaラムダ式入門とJDKのインストール、IDEの環境構築」ではJavaでのラムダ式の概要と利点、必要性、JDK 8のセットアップ、NetBeans、IntelliJ IDEA、Eclipseのe(fx)clipseプラグインの環境構築について解説しました。実行できる準備ができたところで今回は、ラムダ式の読み書きができるように基的な文法を見ていきましょう。 ラムダ式の基文法の概要

    知っといてムダにならない、Java SE 8の肝となるラムダ式の基本文法
  • 初心者のためのJavaラムダ式入門とJDKのインストール、IDEの環境構築

    2014年3月18日に一般公開予定のJava SE 8へのバージョンアップでは、新たな表記法として「ラムダ式」が追加されます。このラムダ式を使うことによって効果を発揮する数々のAPIも追加されることになり、今回のバージョンアップはJavaを使う人にとって無視できないバージョンアップとなります。 しかしラムダ式は今までJavaプログラミングをやってきた人でも前提知識なしにソースだけを見て理解するのは難しい内容となっています。この連載では、今までJavaの経験はあっても「ラムダ式は、まだ知らない」という人を対象にラムダ式について解説していきます。 JDK 8は2013年9月10日に開発者向けプレビュー版が公開され、2014年2月18日現在、Early Access版がリリースされています。 コラム「ややこしいJavaのバージョン番号」 Javaのバージョン番号について、ところどころで1.8のよ

    初心者のためのJavaラムダ式入門とJDKのインストール、IDEの環境構築
  • Java8におけるindyとLambdaの絶妙な関係、もしくはSAMタイプを継承する内部クラスの.classファイルはどこへ行ったの? - uehaj's blog

    JJUG CCC 2013 Springのさくらばさんのセッションで「Java 8の怖い話」として、Lambda式をJVM上で実行するにあたり、 invokedynamicを使っている Lambda式の仕様は、意味的にはSamタイプを継承する内部クラスのインスタンスのはずだが、lambda式を使っているJavaソースをコンパイルしても、内部クラスに対応する.classファイルが生成されない という話を聞きました。Lambdaの実行に、内部的にバイトコードを生成して使っている、という話だったのですが、indy使ってるってのは、良く考えると解せないです。Lambdaになんらかの動的な側面があるんでしょうかね??? ということで、調べてみました。 [:contents] 結論 結論から書くと、OracleJava8のJDKのJavacは、Lambda式の体を、SAMタイプを継承する内部クラス

    Java8におけるindyとLambdaの絶妙な関係、もしくはSAMタイプを継承する内部クラスの.classファイルはどこへ行ったの? - uehaj's blog
    tarchan
    tarchan 2013/08/21
    >Lambda式の本体を、SAMタイプを継承する内部クラスのメソッドではなく、コンパイル対象のクラスに直接所属するメソッドとしてコンパイルします。
  • JJUGナイトセミナー「インサイド・ラムダ」 - torutkのブログ

    日はJJUG主催のナイトセミナー「Inside Lambda」が開催されました。 http://kokucheese.com/event/index/101955/ 内容は2部構成で、目玉はJavaのラムダ式が裏でinvokedynamicを使っている件について「ラムダとinvokedynamicの蜜月」の題名で宮川拓さんの講演、そしてその前の時間にラムダ理解の導入として「Project Lambdaの基礎」の題名で櫻庭祐一さんの講演がありました。 「Project Lambdaの基礎」 http://www.slideshare.net/skrb/project-lambda-24531410 プレゼンテーションのフォントが独特でした。 λ計算のアロンゾ・チャーチさんの写真をあんなに長くひっぱるプレゼンって・・・ Javaのラムダ式は、実装すべきメソッドが1つであるFunctional

    JJUGナイトセミナー「インサイド・ラムダ」 - torutkのブログ
  • Java 8は関数型なのか

    ITproの読者には既にご存じの方も多いと思うが、2014年3月に「Java SE」の次期版「Java SE 8」(以下、Java 8)がリリース予定である。国内のエンタープライズ分野では「レガシーJava」が多いとされ、現行版の「Java SE 7」に移行しているユーザーすら少数派と聞く。Java 8といっても遠い話のように感じる方も多いかもしれない。 しかし、Java 8はJavaにとって一つの大きなマイルストーンとなる。関数型プログラミングに由来する「ラムダ(lambda)式」なる構文が導入されるのだ。 Javaをよく知る技術者の方の中には、「いや、Java 8のラムダ式は関数型プログラミングのために導入されたのではない」と主張される方がいるだろう。この点については後ほど触れたいと思うが、「ラムダ式が何のために導入されたか」はさておき、ラムダ式という記法そのものが「関数型に由来する」

    Java 8は関数型なのか
  • 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
  • IT news, careers, business technology, reviews

    Zoom gets mixed-reality makeover for Apple’s Vision Pro The company’s “spatial computing” app will launch alongside Apple’s headset this week, but some features — such as collaboration around 3D objects — won’t arrive until spring.

    IT news, careers, business technology, reviews
  • Java Advent Calendar 1 日目 - Project Lambda の遅延評価

    このエントリは Java Advent Calendar 2012 の第 1 日目です。 去年の Java Advent Calendar も第 1 日目を書いて、しかも Project Lambda についてでした。 今年も Project Lambda について書くわけですが、去年とはちょっと観点を変えようと思います。 今年の JavaOne で Java SE の一番のトピックといえば、やっぱり Project Lambda だったと思います。実際、Keynote でも Brian Goetz が登壇して Lambda の説明をしていますし、セッションも Lambda だけで 5 つもあったほどです。 実際に Brian Goetz の Lambda のセッションに出て思ったのは、Lambda の言語仕様はほぼ固まったということです。そして、開発の中心は Lambda の実装方法や、

  • Project Lambda

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

  • VBラムダ式 基礎文法最速マスター - @IT

    ■0. まえがき 稿では、小さいテーマではあるが、まだまだ慣れ親しんでいない開発者が少なくないと考えられる「ラムダ式(VB:Visual Basic)」についての基礎文法を簡潔にまとめる(C#ラムダ式についてはこちら)。「ラムダ式、どう書くんだっけ?」という場合のリファレンスとして活用していただけるとうれしい。また、ラムダ式を敬遠しているという方は、まず稿が学び始める取っ掛かりになるかもしれない(もちろん稿の説明は充実しておらず、すべてを学べるわけではない)。 今年(2010年)に入ってインターネット上では、プログラミング言語の基文法を簡潔にまとめた「○○言語 基礎文法最速マスター」(以降、最速マスター・シリーズ)というブログ記事が多数投稿されている。参考までに、そのいくつかを示そう(そのほかについては、こちらを参照されたい)。 VBA 基礎文法最速マスター:何かしらの言語による記

  • Javaのラムダ式導入に関する最新提案の雑なまとめ - 矢野勉のはてな日記

    java7月頭に,Brian GoetzがJavaにおけるラムダ式導入に関する最新提案のドラフトを出しました。State of the Lambda 私はこの提案書と,提案書を元にした英語記事を読んだだけですが,Twitterで話していると,23日くらいにこの提案を元にしたソースがJavaのソースリポジトリにコミットされたらしい。ただし,中ではまだ議論続発してるらしい。ちなみに英語記事はラムダについての連続記事の4回目で,5回目ではWicketでラムダ式を使うとどうなるか,という考察が載っています。提案書のラムダ式とWicketの非整合部分についての考察で,Wicket好きの人は読んでみてもいいと思う。あと,空コンストラクタがないクラスについて提案書は明確なところ書いてないよね,みたいな指摘も。せっかくなんで,最新提案におけるラムダ式実装をまとめておきます。いままでのあらすじ最新提案書では

  • VB はじめての動作 - LINQ, 遅延実行, 即時実行, Aggregate, メソッドベースの構文

    Visual Basic 中学校 > LINQ講座 > 第3回 LINQの動作 LINQの遅延実行と即時実行をAggregateの使用方法も含めて説明します。また、メソッドベースの構文についても説明します。 概要・基的にLINQは実際に値が必要になるまで実行されない。これを遅延実行と呼ぶ。 ・LINQをすぐに実行したい場合はAggregateを使うか、ToListやToArrayなどを使用して値を要求する。これを即時実行と呼ぶ。 ・遅延実行の場合は配列やコレクションに対するLINQの戻り値はIEnumerable(Of …)。 ・即時実行の場合はLINQの戻り値は要求した値の型。 ・Aggregateを使うと、合計や個数、平均などの集計を行うことができる。 ・LINQのキーワードを通常のメソッドとして呼び出すメソッドベースの構文の説明 1.LINQが実行されるタイミング 従来のVBのメソ

  • C++0xの新機能「ラムダ式」を次期Visual Studioでいち早く試す

    C++0Xの新機能が搭載されたVisual Studio 2010 Microsoftの開発者向け技術情報サイト「MSDN」では、Visual Studio 2010 β1 がリリースされています。IDEがWPFで作られていたり、.NET Frameworkのバージョンが上がっていたりと、Visual Studio 2010では様々な変更/拡張が施されているようですが、C++屋の筆者としては、Visual C++が部分的にせよC++の新規格(通称C++0X)の新しい機能を積極的に取り入れていることが、とても嬉しく思います。 Visual C++ ver. 10に追加されたC++0Xの新機能のひとつ、「ラムダ式(lambda expression)」を少しばかり触ってみましょう。 関数オブジェクトとは C++templateをサポートし、それにあわせてSTLに代表されるテンプレート・ライブ

    C++0xの新機能「ラムダ式」を次期Visual Studioでいち早く試す
  • ラムダ文字の由来:Rainy Day Codings:So-net blog

    Haskell で匿名関数を表現するのに \ を使うのはバックスラッシュがラムダ文字 λ に似てるかららしい。でもこれは Windows とかだと円記号になってしまって台無しである。それにバックスラッシュは相当多くの言語で一意にエスケープの意味を持つので混乱する。 匿名関数をラムダ lambda と呼ぶのは Lisp の影響だが、Peter Norvig の Paradigms of Artificial Intelligence Programming によると Lisp で匿名関数を lambda と書くのは以下のような由来らしい。 - Russel と Whitehead の Principia Mathematica では のように束縛変数の上にキャレットを置く書き方をしていた - Church がその記法を ^x(x+x) と変えた - キャレットの下に何も無いのが変だと思ったの

  • 1