製品、トピックスやコンテンツ・タイプでフィルターをかける

(0 製品)

(106 トピック)

(1 インダストリー)

(4 種類)

1 - 18 件のうちの 18 件
概要の表示 | 概要の非表示
結果の表示
タイトル none 種類 down 日付 none
関数型の考え方: 遅延処理、第 1 回
多くの関数型プログラミング言語に共通する機能に「遅延評価」があります。遅延評価では、式を宣言時に評価するのではなく、必要になった時点でのみ評価します。Java ではこのようなスタイルの遅延処理をサポートしていませんが、いくつかのフレームワークと関連言語がサポートしています。この記事では、Pure Java と関数型フレームワークを使用して Java アプリケーションに遅延処理を統合する方法を説明します。
記事 2012/12/20
関数型の考え方: 変換処理と最適化
各種の関数型の言語とフレームワークには、同じ抽象化と振る舞いでも、その名前が異なるものが数多くあります。連載「関数型の考え方」の今回の記事では、著者の Neal Ford が前回の記事で紹介したソリューションのアルゴリズムを改善し、キャッシングを追加することによってソリューションを最適化します。これにより、それぞれの言語やフレームワークで最適化に必要な変更がどのように提供されるのかを明らかにします。
記事 2012/11/15
関数型の考え方: 実にさまざまな変換処理
関数型プログラミングの構成体は、今やあらゆる主要言語で使われるようになっていますが、これらの構成体を見分けるのは容易ではありません。それは、これらの構成体には一般的な名前が幅広く使われているためです。連載「関数型の考え方」の今回の記事では、異なる 7 種類の関数型フレームワークおよび言語で同じ例に対するコードを作成し、それぞれの類似点と相違点を探ります。
記事 2012/10/25
関数型の考え方: 関数型の観点で考える、第 1 回
バグが少ない上に生産性が高いという特徴を引っ提げた関数型プログラミングへの関心が、最近、爆発的に高まっています。けれども多くの開発者が、ある種のジョブに対して関数型言語のどこが魅力的であるのか理解しようとして、理解できずに終わっています。新しい言語の構文を学ぶのは簡単ですが、今までとは違う考え方を学ぶのは大変です。連載「関数型の考え方」の第 1 回目では、著者の Neal Ford が、関数型プログラミングの特徴的な概念をいくつか紹介し、これらの概念を Java と Groovy の両方で使用する方法を説明します。
記事 2011/7/01
関数型の考え方: 関数型の観点で考える、第 2 回
関数型の言語およびフレームワークでは、繰り返し処理や、並行処理、状態管理などの一般的なコーディングの詳細はランタイムに制御させます。だからと言って、必要なときに制御を取り戻すことができないわけではありません。関数型の観点で考えるときに重要となる側面の 1 つは、どれだけの制御をどのような場合に引き渡すべきかを知ることです。
記事 2011/7/01
関数型の考え方: 関数型の観点で考える、第 3 回
連載「関数型の考え方」の今回の記事では、著者の Neal Ford が引き続き関数型プログラミングの構成体とパラダイムについて説明します。まずは Scala で作成した数値分類子のコードを検討し、関数型の世界でのユニット・テストに簡単に触れた後、コードの再利用を容易にする関数型の 2 つの手法、部分適用とカリー化について説明します。そして最後に、再帰が関数型の考え方にいかに適合しているかを明らかにします。
記事 2011/7/29
関数型の考え方: 不変性
不変性は、関数型プログラミングの基本要素の 1 つです。連載「関数型の考え方」の今回の記事では、Java 言語における不変性のさまざまな側面を取り上げ、Java の不変クラスを作成する昔ながらの方法と新しい方法を説明します。さらに、Java 実装に伴う厄介な作業を大幅に取り除ける方法として、Groovy で不変クラスを作成する 2 つの方法を紹介します。そして最後に、この抽象化がどのような場合に適しているかを説明します。
記事 2011/9/02
関数型の考え方: 連結と合成、第 1 回
毎日、特定の抽象化 (オブジェクト指向など) を扱っていると、その抽象化によって導かれているソリューションが最善の策ではないことに気付きにくいものです。この記事から 2 回にわたり、オブジェクト指向の考え方がコードの再利用に与える影響を詳しく探り、その影響と合成などの関数型の手段がコードの再利用に与える影響とを比較します。
記事 2011/10/07
関数型の考え方: 連結と合成、第 2 回
オブジェクト指向を構成する概念 (継承やポリモーフィズムなど) を使い慣れているプログラマーは、その欠点も、代わりとなる手段も目に入らなくなってしまいがちです。関数型プログラミングでは再利用を可能にするために、より汎用的な概念 (リスト変換や移植可能なコードなど) をベースにさまざまな構成概念を用います。連載「関数型の考え方」の今回の記事では、コードを再利用するメカニズムとして、継承による連結と合成とを比較し、命令型プログラミングと関数型プログラミングの重要な違いの 1 つを指摘します。
記事 2011/11/04
関数型の考え方: Groovy に隠された関数型の機能、第 2 回
Groovy でメタプログラミングと関数型プログラミングを組み合わせると、強力な組み合わせになります。この記事では、Groovy に組み込まれている関数型の機能を利用するメソッドを、メタプログラミングによって Integer データ型に追加する方法を説明します。さらにメタプログラミングを使用して、Functional Java フレームワークに用意された豊富な関数型の機能をシームレスな方法で Groovy に組み込む方法も説明します。
記事 2012/2/03
関数型の考え方: Groovy に隠された関数型の機能、第 1 回
時代とともに、プログラミング言語やランタイムが私たちに代わって処理してくれる雑事は次第に多くなってきています。こうした傾向を示す典型的な例が関数型言語ですが、最近の動的言語にも、開発者の作業を楽にする関数型の機能が数多く取り込まれるようになってきました。今回の記事では、Groovy に隠されている関数型の機能について調べ、再帰によって状態が隠される仕組みと、遅延リストを作成する方法について説明します。
記事 2012/1/06
関数型の考え方: 関数型のデザイン・パターン、第 2 回
デザイン・パターンは問題を解決するための 1 つの方法に過ぎませんが、主にオブジェクト指向の言語を使用しているとしたら、最終的にはデザイン・パターンの考え方に行き着くことになるでしょう。連載「関数型の考え方」の今回の記事では、Neal Ford が互換性のないインターフェースという共通の問題を、従来のデザイン・パターン、メタプログラミング、そして関数合成の手法を使用して解決する方法を説明します。どの手法にも利点と欠点がありますが、さまざまなソリューションの設計を考えることで、問題を新しい角度から見られるようになります。
記事 2012/5/10
関数型の考え方: Groovy に隠された関数型の機能、第 3 回
最近の動的言語には、平凡なタスクで開発者の手をわずらわせないように多くの関数型の機能が組み込まれています。今回の記事では、Groovy の関数レベルでキャッシングするメリットを探り、命令型の手法と対比させます。またキャッシングのタイプとして、メソッド内でキャッシュする場合と、外部でキャッシュする場合の 2 つを例に、命令型の手法と関数型の手法それぞれの利点と欠点を検討します。
記事 2012/3/01
関数型の考え方: 遅延処理、第 2 回
クロージャーをサポートする言語では、遅延評価を簡単に実装することができます。連載「関数型の考え方」の今回の記事では、Groovy のクロージャーをビルディング・ブロックとして使用して遅延リストを作成する方法を説明します。その後、言語によってはフィールドの初期化を遅延できるという点を含め、遅延評価のパフォーマンス上および概念上のメリットを探ります。
記事 2013/10/31
関数型の考え方: 関数型のデザイン・パターン、第 1 回
一般に関数型プログラミングにはデザイン・パターンが存在しないと考えられていますが、関数型プログラミングにもデザイン・パターンは存在します。ただし、関数型プログラミングにおけるデザイン・パターンは、見掛けの上でも、振る舞いの上でも、オブジェクト指向プログラミングにおけるデザイン・パターンとは異なることがあります。連載「関数型の考え方」の今回の記事では、Neal Ford が関数型パラダイムでのパターンの現れ方を検討し、ソリューションによる違いを説明します。
記事 2012/4/05
関数型の考え方: 関数型のデザイン・パターン、第 3 回
Gang of Four (GoF) の Interpreter デザイン・パターンは、ある言語から新しい言語を作成することによって、その言語を拡張するように促すパターンです。ほとんどの関数型言語では、演算子の多重定義やパターン・マッチングなど、さまざまな方法で言語を拡張できるようになっています。Java ではこのような拡張手法を一切使用できませんが、次世代の JVM 言語では、実装の詳細は異なるとはいえ、言語の拡張が可能になっています。この記事では Neal Ford が、Groovy、Scala、および Clojure で Interpreter デザイン・パターンの目的を実現するために、Java では使用できない方法で関数型言語を拡張する方法を調査します。
記事 2012/6/14
関数型の考え方: ディスパッチの再考
Java プラットフォームのための次世代の言語には、Java 言語よりも柔軟なメソッド・ディスパッチ・メカニズムがあります。連載「関数型の考え方」の今回の記事では、Neal Ford が Scala や Clojure などの関数型言語のディスパッチ・メカニズムを探り、コードの実行に対する新しい考え方を紹介します。
記事 2012/9/20
関数型の考え方: Either と Option による関数型のエラー処理
Java 開発者が慣れているエラー処理の方法は、例外をスローしてキャッチするというものですが、その方法は、関数型のパラダイムにはマッチしません。連載「関数型の考え方」の今回の記事では、コードをタイプ・セーフな状態に維持しつつ、関数型の方法で Java エラーを示す方法を調査します。さらに、関数型の return文でチェック例外をラップする方法を説明し、Either という便利な抽象クラスを紹介します。
記事 2012/7/12
1 - 18 件のうちの 18 件
概要の表示 | 概要の非表示