関数を実行あるいは適用するということ

(λx(x+1))1

  • >
(function(x) {
  x + 1;
})(1); 
//   仮引数にあたる変数xに値1を代入して、外側の function(x) {  と }を消す。
//
//  (1 + 1) 
// 2

(λx.xx)λx.xx

  • >
(function(f) {
  f(f);
})(function(f) {
  f(f);
}); //返ってこない!
//   仮引数にあたる変数fに値function(f){f(f);}を代入して、外側の function(f) {  と }を消す。
//  (function(f) {f(f);})(function(f){f(f);});  //(同じものが出てきた。
//   仮引数にあたる変数fに値function(f){f(f);}を代入して、外側の function(f) {  と }を消す。
//  (function(f) {f(f);})(function(f){f(f);});  //(同じものが出てきた。
//   仮引数にあたる変数fに値function(f){f(f);}を代入して、外側の function(f) {  と }を消す。
//以下同じ。