Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
GetPage("http://habrahabr.ru",
x => Translate(x,
y => Display(y)));
var result =
from x in GetPage("www.example.com").ToCont()
from y in Translate(x).ToCont()
from z in Analyse(y).ToCont()
select z;
result(Display);
Async.Do(GetPage('...')).AndThen(Tranlsate).AndThen(Analyze).AndThen(Display);
public static Cont<T> ToCont<T>(this Task<T> task) {
return k => task.ContinueWith(task => k(task.Result));
}var task = Task<int>.Factory.StartNew(() => 10);
var cont = task.ToCont();
Action<int> k = x => Display(x);
cont(k);
//Тут нет никакой рекурсии.
k => task.ContinueWith(task => k(task.Result));// k == Display
//->
task.ContinueWith(task => Display(task.Result))
Linq To Tasks и монада продолжения