タグ

lambdaに関するcoppieeeのブックマーク (9)

  • Project Lambda

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

    coppieee
    coppieee 2011/12/02
    いいね!
  • http://pllab.is.ocha.ac.jp/~asai/jpapers/sakaue.pdf

  • letsboost::lambda

    abstract 必要なヘッダ <boost/lambda/lambda.hpp> 基, <boost/lambda/bind.hpp> 関数を使いたいとき, <boost/lambda/if.hpp> if, elseを使いたいとき, <boost/lambda/loops.hpp> for, while, <boost/lambda/switch.hpp> switch, case, <boost/lambda/construct.hpp> コンストラクタ, <boost/lambda/casts.hpp> キャスト, <boost/lambda/exceptions.hpp> try, catch, <boost/lambda/algorithm.hpp> STLの標準アルゴリズム, 出来ること 無名関数 リファレンス en / jp sample サンプルの動作確認バージョン [

  • JavaScriptで読む「ラムダ計算基礎文法最速マスター」 - 貳佰伍拾陸夜日記

    以前書いた「ラムダ計算基礎文法最速マスター」(以下「最速マスター」)は, 予想以上に多くの人に興味を持ってもらえたようですが, 同時に難しくてわからなかったという人も多かったようです. 反響から察するに, 構文を見慣れていない(と錯覚してしまう)ことが理解の妨げになっていたように思います. ラムダ計算の構文は, 実際には全く特殊なものではありません. このことがよくわかるように, 「最速マスター」のラムダ計算の簡約の例をすべてJavaScriptの構文で書いてみました. ......という内容になるはずでしたが, 気がついたらラムダ計算のインタプリタをJavaScriptで実装していました! 実際に動かせるものは下記URLにあります. https://tarao.github.io/LambdaJS/#js 動作確認と既知の問題 Firefox 3.6 Google Chrome 4.1

    JavaScriptで読む「ラムダ計算基礎文法最速マスター」 - 貳佰伍拾陸夜日記
  • Javaのラムダ式導入に関する最新提案の雑なまとめ - 矢野勉のはてな日記

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

  • InfoQ: Javaにおけるラムダ:詳細な分析

    実際、Javaには1.1の時代から(インナークラスという形で)クロージャがあります。次のコードを見て下さい。 public interface IFilter { public boolean filter(int x); } public class FilterFactory { public static IFilter greaterThan(final int i) { return new IFilter() { public boolean filter(int x) { // iは語彙的スコープの外部から与えられる return x > i; } }; } } 上記のコードサンプルでは、FilterFactoryにgreaterThanというファクトリメソッドがあり、これは呼び出しに際して引数に関するクロージャを返します。同じコードを異なる引数で呼び出すと、異なるクロージャ

    InfoQ: Javaにおけるラムダ:詳細な分析
  • Haskell で Y コンビネータ - あどけない話

    Haskell では、Y コンビネータが作れないと誤解している人がいるので、できることを示すと同時に、これまで学んだことをまとめてみます。 遅延評価を活かした Y コンビネータ 関数名を用いた再帰を使ってよいなら、Haskell では遅延評価のおかげで、Y コンビネータを定義である Y x = x (Y x) の通りに書けます。 y :: (a -> a) -> a y x = x (y x) Y コンビネータ用の階乗を定義してみましょう。 fact :: Num a => (a -> a) -> a -> a fact = \f n -> if n == 0 then 1 else n * f (n-1) 以下のように動きます。 y fact 4 → 24 でも、この階乗は Haskell っぽくないので、入り口で分岐するように書き直してみます。 fact :: Num a => (a

    Haskell で Y コンビネータ - あどけない話
  • オンラインで入手できる数理論理学・数学基礎論のテキスト

    オンラインで入手できる数理論理学・数学基礎論のテキスト 数理論理学、数学基礎論の教科書的に使えるテキスト(講義ノート、サーヴェイ、モノグラフ等)のうち、オンラインで入手できるものを集めました。 入門的概説 論理一般 高階論理と型理論 直観主義論理 コンビネータとラムダ計算 時相論理および時制論理 様相論理 適切さの論理 自然言語の論理 空間論理 モデル理論 安定性理論 無限論理 計算可能性理論および再帰理論 集合論 pcf理論 記述集合論 実数の集合論 選択公理 強制法と内部モデル 連続体仮説 NF 証明論と構成的数学 順序数解析 算術の体系と不完全性 証明可能性論理 線形論理 構成的数学 代数的論理と圏論 ブール代数 普遍代数 量子論理 圏論 歴史 入門的概説 [▲] 加茂静夫,「数理論理学(命題論理と述語論理)」.[PDF] 嘉田勝,「数理論理学 講義ノート(2013年度版)」. St

  • Practical Scheme

    Shiro Kawai 11/20/2000初出、3/29/2002更新 Cに慣れたプログラマがSchemeのコードを見て面らうことのひとつは、 無名の関数やローカル関数の多用だろう。 特に実行効率に敏感なプログラマにとっては「関数呼出しは高価」 という感覚が染み着いているため、 至るところに散りばめられたlambdaに眉をひそめてしまうようだ。 しかしSchemeにおいては、 コード上に関数が書いてあるからといって 実行時にスタックフレームの生成やレジスタの退避などのオーバヘッドが起こるとは限らない。 例えば関数の最後に別の関数を呼び出す末尾呼び出し(tail call) はただのjumpインストラクションに置き換え可能だ。 ここでは、Cプログラマを対象に、 lambdaで生成される関数群が実際にどのように実行され得るのかを書いてみたい。 (なお、Schemeの規格ではlambdaフォ

    Practical Scheme
  • 1