This is an error 404
There are `0` results
preferences:
148.13 ms | 1398 KiB | 7 Q<?hh
/*-------------------------*\
$PROGRAM
\*-------------------------*/
$zero = $f ==> $x ==> $x;
$one = $f ==> $x ==> $f($x);
$two = $f ==> $x ==> $f($f($x));
$three = $f ==> $x ==> $f($f($f($x)));
$five = $f ==> $x ==> $f($f($f($f($f($x)))));
$true = $x ==> $y ==> $x;
$false = $x ==> $y ==> $y;
$if = $f ==> $f;
$isZero = $f ==> ($f($x ==> $false))($true);
$increment = $n ==> $f ==> $x ==> $f(($n($f))($x));
$decrement = $n ==> $f ==> $x ==> (($n($g ==> $h ==> $h($g($f))))($y ==> $x))($y ==> $y);
$add = $m ==> $n ==> ($n($increment))($m);
$subtract = $m ==> $n ==> ($n($decrement))($m);
$multiply = $m ==> $n ==> ($n($add($m)))($zero);
$power = $m ==> $n ==> ($n($multiply($m)))($one);
$cons = $x ==> $y ==> $f ==> ($f($x))($y);
$car = $p ==> $p($x ==> $y ==> $x);
$cdr = $p ==> $p($x ==> $y ==> $y);
/*-------------------------*\
$DISPLAY HELPERS
\*-------------------------*/
$toNum = $f ==> ($f($x ==> $x + 1))(0);
$toBool = $f ==> (($if($f))(true))(false);
$toTextBool = $f ==> $toBool($f) ? 'true' : 'false';
function it($m,$p){echo ($p?"✔":"✘")." It $m\n"; if(!$p)register_shutdown_function(function(){die(1);});}
/*-------------------------*\
$TESTS
\*-------------------------*/
it('has zero', $toNum($zero) === 0);
it('has one', $toNum($one) === 1);
it('has two', $toNum($two) === 2);
it('has three', $toNum($three) === 3);
it('has five', $toNum($five) === 5);
it('has true', $toBool($true) === true);
it('has false', $toBool($false) === false);
it('can find zero values', $toBool($isZero($zero)) === true);
it('can find non zero values', $toBool($isZero($three)) === false);
it('can increment values', $toNum($increment($one)) === 2);
it('can decrement values', $toNum($decrement($three)) === 2);
it('can add numbers', $toNum(($add($three))($one)) === 4);
it('can subtract numbers', $toNum(($subtract($five))($two)) === 3);
it('can multiply numbers', $toNum(($multiply($five))($three)) === 15);
it('can calculate the power of numbers', $toNum(($power($three))($three)) === 27);
$list = ($cons($one))($two);
it('can find the car of a list', $toNum($car($list)) === 1);
it('can find the cdr of a list', $toNum($cdr($list)) === 2);
$bigList = ($cons($one))(($cons($two))($three));
it('can find the car of a big list', $toNum($car($bigList)) === 1);
it('can find the cdar of a big list', $toNum($car($cdr($bigList))) === 2);
it('can find the cddr of a big list', $toNum($cdr($cdr($bigList))) === 3);