Task applicative in PHP
<?php
require __DIR__ . '/lib.php';
$a = new Task(function($onSuccess, $onError) {
echo "a\n";
$onSuccess('a');
});
$b = new Task(function($onSuccess, $onError) {
echo "b\n";
$onSuccess('b');
});
$c = new Task(function($onSuccess, $onError) {
echo "c\n";
$onSuccess('c');
});
function concat($a) {
return function($b) use($a) {
return function($c) use($a, $b) {
return "$a$b$c";
};
};
}
$abc = ap(ap(map('concat', $a), $b), $c);
$abc->perform(function($result) {
echo "$result\n";
}, function($error) {
throw $error;
});
INFO