SlideShare uma empresa Scribd logo
1 de 15
1+1=2
Akihiro Shoji a.k.a. alphaKAI(@alpha_kai_NET)
突然ですが
1+1 出来ますか?
• え、2では?
• はい、2ですね。
• 終了… ではなく
気を取り直して
• ここでは、1+1=2を少し変わった視点から見てみ
ましょう
• → ラムダ計算で考えてみよう
ラムダ計算とは
• 簡単に言うとラムダ→λを使って関数をλx. xみた
いに表すこと(ラムダを用いて表した式をラムダ
式といいます)
• すべての計算(手続き)を関数であらわそーみたい
な感じ
• 厳密な話は(出来ないし)しません…
ラムダ計算の基本-書き方
• よく見慣れた関数: f(x) = 2x + 1
• ラムダ式で書くと: f = λx. 2x + 1
• プログラミング言語的に言うと、式を関数として第一
級関数(関数をオブジェクトとしてあつかう)のような
感じ。
• 複数の引き数がある場合は 例:λx. (λy. x + y)
ラムダ計算の基本-用語
• 束縛変数と自由変数
• 束縛変数: λx. x ← この場合のx
• 自由変数: λx. x + y ←この場合のy
• 注意: λxy. x + y (=λx. λy. x + y)この場合、x,yと
もに束縛変数
ラムダ計算の用語-その2
• 適用(後に説明するがβ簡約という)
• 簡単に言うと、引き数の変数に値を代入する
こと
• f(x)=2x+1とするとx=2としてf(2)=2*2+1=5
複数の引き数がある場合
• λxy. x + yの場合、yを引き数に持つ`関数`が帰る(
ポイント)
α変換
• (λfx. f x)に(λfx.f x)を適用する場合、一つ問題が発生する
• 名前が他の場所と衝突しないかぎり、ラムダ式の変数
名は自由に変えて良い
• λx.x ≡ λy.y
チャーチ数
• ラムダ計算はすべてを関数として表したいので
、数も関数で表す必要があるので、以下のよう
に定義する
• 1 = λfx. f x
• 2 = λfx. f (f x)
• 3 = λfx. f (f (f x)) 以下同様にfがふえてく...
お待たせしました
• 1 + 1を考えましょう。
• 簡単のため、+というBinary 関数をラムダ式で表
すことの 導入は省略して、次のように定義しま
す
• add := λa.λb.λf.λx. b f (a f x)
• これを使うと....
1+1はこうなる
適当な説明でしたが…
• 適当な説明でしたが… ラムダ計算に興味を持っ
てもらえたのではないでしょうか…
• Let’s λ!!
ご静聴ありがとうござ
いました

Mais conteúdo relacionado

Mais procurados

第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章
Tomonobu_Hirano
 
Usp友の会勉強会、ジャクソン構造図の巻(後編)
Usp友の会勉強会、ジャクソン構造図の巻(後編)Usp友の会勉強会、ジャクソン構造図の巻(後編)
Usp友の会勉強会、ジャクソン構造図の巻(後編)
umidori
 
mathemaical_notation
mathemaical_notationmathemaical_notation
mathemaical_notation
Kenta Oono
 

Mais procurados (20)

知識情報システム主専攻_主専攻実習最終発表会
知識情報システム主専攻_主専攻実習最終発表会知識情報システム主専攻_主専攻実習最終発表会
知識情報システム主専攻_主専攻実習最終発表会
 
[Basic 10] 形式言語 / 字句解析
[Basic 10] 形式言語 / 字句解析[Basic 10] 形式言語 / 字句解析
[Basic 10] 形式言語 / 字句解析
 
Haskell
HaskellHaskell
Haskell
 
Javascriptで学ぶ Functional Programming
Javascriptで学ぶ Functional ProgrammingJavascriptで学ぶ Functional Programming
Javascriptで学ぶ Functional Programming
 
Lispでやる記号微分
Lispでやる記号微分Lispでやる記号微分
Lispでやる記号微分
 
HiroshimaJUG の 「Java8 Lambda ハンズオン with すごい広島」 を5分で振り返る
HiroshimaJUG の「Java8 Lambda ハンズオン with すごい広島」を5分で振り返るHiroshimaJUG の「Java8 Lambda ハンズオン with すごい広島」を5分で振り返る
HiroshimaJUG の 「Java8 Lambda ハンズオン with すごい広島」 を5分で振り返る
 
数学プログラムを Haskell で書くべき 6 の理由
数学プログラムを Haskell で書くべき 6 の理由数学プログラムを Haskell で書くべき 6 の理由
数学プログラムを Haskell で書くべき 6 の理由
 
第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章
 
(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義する(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義する
 
私を SKI に連れてって
私を SKI に連れてって私を SKI に連れてって
私を SKI に連れてって
 
Scala 初心者が米田の補題を Scala で考えてみた
Scala 初心者が米田の補題を Scala で考えてみたScala 初心者が米田の補題を Scala で考えてみた
Scala 初心者が米田の補題を Scala で考えてみた
 
情報科学シケスラ Fibonacci
情報科学シケスラ Fibonacci情報科学シケスラ Fibonacci
情報科学シケスラ Fibonacci
 
TypeScript & 関数型講座 第3回 関数型入門
TypeScript & 関数型講座 第3回 関数型入門TypeScript & 関数型講座 第3回 関数型入門
TypeScript & 関数型講座 第3回 関数型入門
 
Japalisp -Lisp like language for Numeric computation with natural Japanese la...
Japalisp -Lisp like language for Numeric computation with natural Japanese la...Japalisp -Lisp like language for Numeric computation with natural Japanese la...
Japalisp -Lisp like language for Numeric computation with natural Japanese la...
 
とぽろじー入門(画像なし版)
とぽろじー入門(画像なし版)とぽろじー入門(画像なし版)
とぽろじー入門(画像なし版)
 
Usp友の会勉強会、ジャクソン構造図の巻(後編)
Usp友の会勉強会、ジャクソン構造図の巻(後編)Usp友の会勉強会、ジャクソン構造図の巻(後編)
Usp友の会勉強会、ジャクソン構造図の巻(後編)
 
Algebraic DP: 動的計画法を書きやすく
Algebraic DP: 動的計画法を書きやすくAlgebraic DP: 動的計画法を書きやすく
Algebraic DP: 動的計画法を書きやすく
 
mathemaical_notation
mathemaical_notationmathemaical_notation
mathemaical_notation
 
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案
 
Scala 初心者が Hom 函手を Scala で考えてみた
Scala 初心者が Hom 函手を Scala で考えてみたScala 初心者が Hom 函手を Scala で考えてみた
Scala 初心者が Hom 函手を Scala で考えてみた
 

Destaque

Colegio nacional nicolas esguerra
Colegio nacional nicolas esguerraColegio nacional nicolas esguerra
Colegio nacional nicolas esguerra
chech98
 
WHITEHEADt-Enviro-11Dec10
WHITEHEADt-Enviro-11Dec10WHITEHEADt-Enviro-11Dec10
WHITEHEADt-Enviro-11Dec10
Troy Whitehead
 
Yone 6 a
Yone 6 aYone 6 a
Yone 6 a
FABIANA
 
purchase agreement
purchase agreementpurchase agreement
purchase agreement
xilvar
 
Shawn_Mayton_Resume__#1
Shawn_Mayton_Resume__#1Shawn_Mayton_Resume__#1
Shawn_Mayton_Resume__#1
Shawn Mayton
 

Destaque (20)

Colegio nacional nicolas esguerra
Colegio nacional nicolas esguerraColegio nacional nicolas esguerra
Colegio nacional nicolas esguerra
 
Presentation1
Presentation1Presentation1
Presentation1
 
M blanco aprendizaje_autonomo
M blanco aprendizaje_autonomoM blanco aprendizaje_autonomo
M blanco aprendizaje_autonomo
 
Javier
JavierJavier
Javier
 
WHITEHEADt-Enviro-11Dec10
WHITEHEADt-Enviro-11Dec10WHITEHEADt-Enviro-11Dec10
WHITEHEADt-Enviro-11Dec10
 
Yone 6 a
Yone 6 aYone 6 a
Yone 6 a
 
Paola 9e
Paola 9ePaola 9e
Paola 9e
 
Montgomery Inn 100
Montgomery Inn 100Montgomery Inn 100
Montgomery Inn 100
 
purchase agreement
purchase agreementpurchase agreement
purchase agreement
 
World No Tobacco Day (WNTD) 2012
World No Tobacco Day (WNTD) 2012World No Tobacco Day (WNTD) 2012
World No Tobacco Day (WNTD) 2012
 
Islam c.v F.m
Islam c.v F.mIslam c.v F.m
Islam c.v F.m
 
Going social: why patient organizations cannot ignore social media
Going social: why patient organizations cannot ignore social media Going social: why patient organizations cannot ignore social media
Going social: why patient organizations cannot ignore social media
 
Leadformance: Uma marca criada para melhorar a geração de leads qualificados ...
Leadformance: Uma marca criada para melhorar a geração de leads qualificados ...Leadformance: Uma marca criada para melhorar a geração de leads qualificados ...
Leadformance: Uma marca criada para melhorar a geração de leads qualificados ...
 
Elizabethcartel
ElizabethcartelElizabethcartel
Elizabethcartel
 
Meneladan Maria dan Yosep
Meneladan Maria dan YosepMeneladan Maria dan Yosep
Meneladan Maria dan Yosep
 
ECPE Class: Debate
ECPE Class: DebateECPE Class: Debate
ECPE Class: Debate
 
The medical conference is dead, long live the medical conference
The medical conference is dead, long live the medical conference The medical conference is dead, long live the medical conference
The medical conference is dead, long live the medical conference
 
chemistry project on preparation of potash alum
chemistry project on preparation of potash alumchemistry project on preparation of potash alum
chemistry project on preparation of potash alum
 
Shawn_Mayton_Resume__#1
Shawn_Mayton_Resume__#1Shawn_Mayton_Resume__#1
Shawn_Mayton_Resume__#1
 
Die Nachhut
Die NachhutDie Nachhut
Die Nachhut
 

Semelhante a 1+1=2の話

Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2
Ransui Iso
 
プログラミングHaskell(第1章)
プログラミングHaskell(第1章)プログラミングHaskell(第1章)
プログラミングHaskell(第1章)
yaju88
 
Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]
Ra Zon
 

Semelhante a 1+1=2の話 (8)

Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2
 
普通のプログラミング言語R
普通のプログラミング言語R普通のプログラミング言語R
普通のプログラミング言語R
 
プログラミングHaskell(第1章)
プログラミングHaskell(第1章)プログラミングHaskell(第1章)
プログラミングHaskell(第1章)
 
数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ
 
Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]
 
Tottoruby 20130119
Tottoruby 20130119Tottoruby 20130119
Tottoruby 20130119
 
関数の最小値を求めることから機械学習へ
関数の最小値を求めることから機械学習へ関数の最小値を求めることから機械学習へ
関数の最小値を求めることから機械学習へ
 
関数プログラミング入門
関数プログラミング入門関数プログラミング入門
関数プログラミング入門
 

1+1=2の話