タグ

ラムダ式に関するhackedのブックマーク (5)

  • 遺伝的プログラミングによるラムダ式の生成

    遺伝的プログラミングって何? 簡単に言うと、遺伝的プログラミング (Genetic Programming, GP) とは コンピュータ自身にプログラムを作らせる方法です。 でもどうやって? それは、自然界にいる生物の進化過程を真似て、プログラムを「進化」させるのです。 たくさんのプログラム(たいていは千とか一万とか)をランダムに生成して、第1世代にする。 どのプログラムが「よい」かを評価する。 「よくない」プログラムを捨てる。 残ったプログラムをランダムに組み合わせたり(交叉)一部を変えたり(突然変異)して次の世代を作る。 2に戻る。 これを何度も何度も繰り返す(だいたいは数千回とか)ことで、 十分「よい」プログラムが得られるという寸法です。 つまりプログラムが生物(あるいは遺伝情報)で、淘汰されつつ進化していくわけです。 遺伝的プログラミングでは普通、われわれが普段使うようなプログラミ

  • Haida's weblog: JavaScript と高階関数

    11/23/2007 JavaScript と高階関数 JavaScript における高階プログラミング という記事を読みました。 高階プログラミングとは高階関数を使ったプログラミングのことです。高階関数とは?高階関数について、以下のような記述があります。プログラミング言語において、関数を引数にしたり、あるいは関数を戻り値とするような関数の事である。引数や戻り値の関数もまた高階関数となり得る。これは主に関数型言語やその背景理論であるラムダ計算において多用される。数学でも同様の概念はあり、汎関数と呼ばれる。Wikipedia -- 高階関数 関数を引数にしたり、関数を戻り値とする手法って、RubyJavaScript では当たり前に使います。 例えば、クロージャを使うって関数を返り値として使う例を見てみます。function multiple(a){ return function(n

  • λ計算とは コンピュータの人気・最新記事を集めました - はてな

    まず無限個の変数が与えられているとする。変数は通常x, yなどど記述される。変数から出発し、次の操作を繰り返して得られるものをλ式と呼ぶ。 λ抽象 λ式Mと変数xから、式λx. Mを生成する操作。これは、変数xに引数を受け取り、値Mを返す関数を意図する。Mに含まれる変数xはこのλにより束縛されるという。ただし、すでに束縛されているものは除く。 関数適用 二つのλ式M, Nを並べて結合した式MNを作る操作。これは式Mが表す関数に引数としてNを与えることを意図する。 またλ抽象や関数適用の範囲を明確にするために括弧を用いる。 例: (λx. xx)(λx. xx),λf.(λx.(f (x x)) λx.(f (x x)))

    λ計算とは コンピュータの人気・最新記事を集めました - はてな
  • 檜山正幸のキマイラ飼育記 - JavaScriptで学ぶ・プログラマのためのラムダ計算

    JavaScriptによるテンプレート・モナド、すっげー簡単!」にて: 紙と鉛筆でラムダ計算を実行できることは必要だな、やっぱり。 なんて強調したので、ラムダ計算の入門、いってみよう。 [追記]練習問題集を追加しました。説明を読みながら、あるいは読んだ後で是非やってみてください。→「JavaScriptで学ぶ・プログラマのためのラムダ計算 問題集」[/追記] ※印刷のときはサイドバーが消えます。 内容: JavaScriptの関数リテラル ラムダ式ってなんだ ラムダ計算の体系と適用操作 ラムダ式の例をいくつか β変換 -- ラムダ計算のキモ! β変換を何度か実行してみる 中間まとめ、まだ続きがあるよ JavaScriptの関数リテラル 最初に、JavaScriptに関する知識を確認しておきましょう。なお、JavaScriptの対話的実行環境については「もっともお手軽な対話的JavaScr

    檜山正幸のキマイラ飼育記 - JavaScriptで学ぶ・プログラマのためのラムダ計算
  • 第1回 ラムダ式(2/5) - @IT

    ラムダ式は何をもたらすか 今回の内容は、C# 2.0を習得したプログラマーを読者に想定しているので、匿名メソッドをすでに知っているという前提で書いている。もしそうでなければ、まずは「連載:C# 2.0入門」の方を一読いただいた方がよいだろう。 さて、題に入ろう。 ラムダ式(λ式)とは、ひと言でいってしまうと、(厳密には正しくないが)匿名メソッドをより短く記述するための構文である。と書くと、単に書き方が変わるだけでソース・コードの性質が変わるわけではないと思うかもしれないが、これは誤解である。規模が変わればそのものの性質が変化することがある。例えば、実験室のビーカーの中で起きた現象が、そのまま巨大プラントでも同じように起こるとは限らない。同様の現象はソース・コード上でも起こり得る。 実際に、ラムダ式を使うことで体験した出来事をまずは紹介しよう。 以下、具体的なコードで説明していくが、実際に

  • 1