Haskell
評価戦略
先行評価(JavaScript)
- var ELSE = 0;
- (function(a, b, c){
- return a ? b : c;
- })(true, 1, ELSE=1+1);
- ELSE; // 2
-
遅延評価(JavaScript)
- var myif = function(_cond, _then, _else){
- return _cond() ? _then() : _else();
- };
- var fact = function(n){
- return myif(function(){ return n <= 1 },
- function(){ return 1 },
- function(){ return n * fact(n-1) });
- }
- fact(10);
-