在drboolean's gitbook中,有一个例子解释了应用函子的重要性:
// Http.get :: String -> Task Error HTML
var renderPage = curry(function(destinations, events) { /* render page */ });
Task.of(renderPage).ap(Http.get('/destinations')).ap(Http.get('/events'))
// Task("<div>some page with dest and events</div>")
据说:
两个Http调用都会立即发生,并且当两者都被解析时将调用renderPage。将此与monadic版本进行对比,其中一个任务必须在下一个任务完成之前完成。
我无法理解。我想:
Task.of(renderPage).ap(Http.get(&#39; / destinations&#39;))。ap(Http.get(&#39; / events&#39;))就是(Http。得到(&#39; / events&#39;))。map(Http.get(&#39; / destinations&#39;)。map(renderPage)),两个Http调用都会立即发生而不是那个任务必须在下一次火爆之前完成?