Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

Introduction Rubyのラムダ式でアロー演算子を覚えて使うようになりました.そんなある日,Groovyに手を出したのですが,アロー演算子によるメソッド定義の書式がRubyと異なるので「?」となって,色々な言語のアロー演算子の書式について調べてみました. 調べてみると,「ラムダ式」「アロー演算子」「アロー関数」「クロージャ」など呼び方も仕組みもさまざまであり,同じものとして扱って良いのか悩みましたが,せっかく調べたので公開します.この投稿内容では,『「=>」か「->」を使ってメソッド(のようなもの)を定義して変数に代入し,(メソッドのように)実行できる』ものを対象としています. 他にもアロー演算子によりメソッド(のようなもの)を記述できる言語はありますが,短時間で調べたので抜けがあります.ご指摘いただければ徐々に改訂していきたいと思っています.できればサンプルプログラムとともにご
About 南の島のプログラマ。 たまに役者。 Practical Schemeの主。 WiLiKi:Shiro 最近のエントリ 米国の大学進学無限cxr高校受験Defense振り返ってみると2019年は色々学んで楽...覚えるより忘れる方が難しい(こともある)眼鏡のつると3DプリンタIris Klein Acting ClassSAG-AFTRA conservatory: Voice Acting創作活動って自分を晒け出さねばならないと...More... 最近のコメント shiro on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/14)1357 on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/01)ベアトリーチェ on ハイポハイポハイポのシューリンガン (2022/04/02)ベアトリーチェ on ハイポハ
講義ノートの目次へ ラムダ計算は,コンピュータ・サイエンスの重要な1分野。 「λ」を使って各種の関数を記述し,λどうしの計算方法を習得すれば・・・ HaskellやF#などの関数型言語を習得するために役立つ。 プログラミングにおいて,関数についての理解を深めることができる。 複雑なアルゴリズムを簡易に記述して,挙動や性質を予測することができる。 計算機科学の,より深い専門的な話題を理解するための足がかりを得られる。 などのメリットがある。 下記に,独学でλ計算を勉強するための, 入門レベルの講義ノートやWebページを掲載する。 読みやすい便利なもの・わかりやすいものから,応用的なものへと並べてある。 質の高いものだけを精選し,わかりづらい資料は除外してある。 ラムダ計算の概要 ラムダ計算の基礎 ラムダ計算の応用 復習のための問題(入門レベル) ※λ計算を利用した計算量・計算複雑性・計算可能
この記事では, Haskellに用いられる「遅延評価」の仕組みを, 図に描いて説明します. 更に, 遅延評価版のフィボナッチ数の無限列を, JavaScriptで実装します. 遅延評価とはどのように動くのか, 考えて行きましょう. HaskellのコードとJavaScriptのコードの比較 Haskellでの x = y y = 10 と, JavaScriptの var x = y; var y = 10; というコードを考えてください. Haskellのコードは, これだけでは何も起こりません. print xとすると, x = y = 10 となって 10 が表示されます. 一方, JavaScriptのコードは var x = y; を評価した瞬間, 「ReferenceError: y is not defined」というエラーが出ます. 更に, main = let x = 1
An Introduction to Functional Programming Through Lambda Calculusを読んでいたら、最初の章に functional language の歴史が書かれていたので、簡単にまとめて見ました。 Propositional calculus Propositional calculus Systemで「命題計算系」です。19世紀中頃に、ハミルトン、ドモルガン、ブール達によって、形式化されました。基本的な値としてtrue、falseを使い、基本的な演算子として、and、or、notを使います。Propositional calculusによって、任意の式(expression)が、原理(theorem)(常に真)かどうかを証明(prove)できます。常に真である基本的な式である公理(axioms)から開始し、公理と既知の原理に推論規則(r
以下の記事は、 R 教授による S 大学での講義録を Haskell Advent Calendar 2012 のために転載したものである。 はじめに えー、それでは、今年最後の授業を始めたいと思う。今日は『究極の関数型言語による至高の Hello, world!』について講義することにしたい。 “究極”の関数型言語が何であるかについては諸説あろうが、ここでは SKI コンビネータ計算を指すものとする。また“至高”の定義を、最も簡潔であること、すなわち最も短く記述されていることと定める。 諸君は第一プログラミング言語として Haskell を選択している者がほとんどであろう。当初この講義も Haskell をベースに行おうと考えていた。だが、Haskell は非常に巨大な言語となってしまっており、言語仕様を把握するだけでも難しい。だいたい STG が Spineless Tagless G
Lazy K Executive summary Lazy K is a garbage-collected, referentially transparent functional programming language, with a simple stream-based I/O system. What distinguishes Lazy K from other such languages is its almost total lack of other features. It does not, for example, offer an integrated Hindley-Milner polymorphic type system. It is not shipped with an extensive standard library with suppor
► 2022 (2) ► 10月 (1) ► 2月 (1) ► 2021 (51) ► 11月 (2) ► 10月 (2) ► 9月 (4) ► 8月 (4) ► 7月 (4) ► 6月 (4) ► 5月 (3) ► 4月 (10) ► 3月 (7) ► 2月 (4) ► 1月 (7) ► 2020 (155) ► 12月 (7) ► 11月 (10) ► 10月 (8) ► 9月 (8) ► 8月 (11) ► 7月 (21) ► 6月 (19) ► 5月 (14) ► 4月 (20) ► 3月 (13) ► 2月 (10) ► 1月 (14) ► 2019 (293) ► 12月 (11) ► 11月 (12) ► 10月 (24) ► 9月 (29) ► 8月 (27) ► 7月 (36) ► 6月 (40) ► 5月 (24) ► 4月 (35) ► 3月 (42) ► 2月 (6
12:21 06/05/28 うたひめ 先日の記事に書いたように KOKIA にハマりまして、 とりあえず片っ端から聴いてみることにしました。まずは 1st アルバムの 『songbird』 から … …4曲目の "白い雪" ヤバい。超ヤバい。なんだこれ。ツボすぎる。 ベスト盤を聴いたとき感じた揺らぎなく落ち着いた歌唱力的な曲を期待して聴きはじめたら、 予想外の声質の歌が飛び込んできてびっくりしました。もちろん抜群に巧いのに かわりはないんですが、ずっと儚げな、ガラス細工みたいなイメージの、ああ、その、 つまり白い雪みたいな雰囲気の綺麗な声で。その声と奇跡的にマッチしたメロディ。 すごいなあ。9曲目の "ありがとう…" もベスト盤でのリテイクと比べて同じ印象で、 Amazonのreview で TenderBerry さんという方が近いことを書いておられました。 しかし書いてて自分の語彙の
ラムダ計算は, 多くのプログラミング言語, とくに関数型言語の原形になっています. ラムダ計算について理解しておくことは, 多くのプログラミング言語の習得に役立つでしょう. ラムダ計算はチューリング完全で, 計算能力としてはふつうのプログラミング言語と同じです. ラムダ計算で計算を書く訓練をしておくことは, 任意の計算を関数のみを使って(他の制御構文を用いずに)書くときに役立ちます. ふつうに書いたら煩雑な処理を, 関数型言語のやり方で書くとすっきりすることが多々あり, コードを自由自在に書くためには必須の考え方と言えるでしょう. 項 ラムダ計算の式を項(term)と言います. 項は変数, 抽象, 適用のいずれかです. 変数 変数(variable)はふつう1文字で書きます. 変数には関数内の束縛変数(bound variable)か自由変数(free variable)かという区別があり
まず無限個の変数が与えられているとする。変数は通常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)))
日本では余り知られていませんが、非常に優れた純粋関数型言語Concurrent Cleanの使い方、チュートリアル・言語リポートの翻訳を載せています。一応ここだけ見れば、Cleanの基本は分かるようにしているつもりです。純粋関数型という最先端の言語でありながら、統合開発環境を持ち、GUI作成のライブラリも豊富な、そして、効率的なexeファイルを出力するコンパイラです。インタプリタではありません。 やはり言っておくべきなのでしょうが、ここにある内容は、基本的に、明示的型宣言を行う命令型言語及びオブジェクト指向言語(具体的には、C/C++、Java、C#、Pascal等)をやった人でないと分からないような内容が多いかもしれません。 ただ、Rubyの所は、Rubyだけ分かっていれば分かる内容だと思います。 個人的な意見ですが、関数型言語それ自体は命令型言語を勉強しないままでも入って行けると思
仙台ロジック倶楽部 ラムダ計算ABC 数学セミナー92年8月号より A. ラムダ計算とは 今から60年程前、プリンストン大学の若手論理学者A.チャーチが、関数の新しい表記法を提案しました。ラムダ記法と呼ばれるその表記法では、例えば二乗を計算する関数は λx.x^2 と表します。従来の"f(x)"という書き方は、それが関数を表すのか、関数のxにおける値を表すのかが曖昧なので、ラムダ記法では、関数fのxにおける値をfxで示し、xにおける値がf(x)となる関数fをλx.f(x)と表すのです。 "f(x)"という表記法の欠陥は、高校の数学までではほとんど表面化しませんが、大学に入ってから定義域や値域が関数の集合になるような高階関数(オペレータとか作用素とも呼びます)を扱いだすとすぐわかります。作用素などというとひどく特殊なもののようですが、関数f(x)にその導関数f'(x)を対応させる微分演算子D
The SKI combinator calculus is a combinatory logic system and a computational system. It can be thought of as a computer programming language, though it is not convenient for writing software.[citation needed] Instead, it is important in the mathematical theory of algorithms because it is an extremely simple Turing complete language. It can be likened to a reduced version of the untyped lambda cal
この記事には参考文献や外部リンクの一覧が含まれていますが、脚注による参照が不十分であるため、情報源が依然不明確です。 適切な位置に脚注を追加して、記事の信頼性向上にご協力ください。(2020年5月) ラムダ計算(ラムダけいさん、英語: lambda calculus)は、計算模型のひとつで、計算の実行を関数への引数の評価(英語: evaluation)と適用(英語: application)としてモデル化・抽象化した計算体系である。ラムダ算法とも言う。関数を表現する式に文字ラムダ (λ) を使うという慣習からその名がある。アロンゾ・チャーチとスティーヴン・コール・クリーネによって1930年代に考案された。1936年にチャーチはラムダ計算を用いて一階述語論理の決定可能性問題を(否定的に)解いた。ラムダ計算は「計算可能な関数」とはなにかを定義するために用いられることもある。計算の意味論や型理論
2008年02月04日07:00 カテゴリLightweight Languages λ Calculus - まずは遅延評価から うーん、まずY Combinatorというのはおじさんたちが悪かったかな。ギター習いたてでいきなりFの音を出すようなもんだから。 Haskell のリストと遅延評価が少し分かった - IT戦記 Y コンビネータって何? - IT戦記 まずは、遅延評価についてきちんとおさらいしておこう。 慌てるな、ループは急に止まらない まずは、以下の式を考えてみる。 (function(a, b, c){ return a ? b : c; })(true, 1, 1+1); 実行してみると、1となるはずだ。しかしここで重要なのはこのことじゃない。後ろの1+1が実行されるかだ。このことはどうやって確認したらよいだろうか。以下のようにしてみればいいはずだ。 var ELSE =
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く