Juan-Carlos Gandhi (
juan_gandhi) wrote2014-03-07 10:58 am
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Entry tags:
the right stuff
presentation: http://2013.flatmap.no/blakstad.html
unfiltered library: https://github.com/unfiltered/unfiltered/blob/master/directives/README.markdown
So, the idea is, have all this http run monadic; that includes checking conditions and throwing back all those 404s, 451, 500...
unfiltered library: https://github.com/unfiltered/unfiltered/blob/master/directives/README.markdown
So, the idea is, have all this http run monadic; that includes checking conditions and throwing back all those 404s, 451, 500...
no subject
Как я понял:
1) Result он что-то вроде Either. Это монадная обёртка для результат вычисления. Success это обёртка для успешно вычисленого значения, а Failure -- для кода ошибки.
2) Directive это монадная обёртка для функции HttpRequest => Result, похожая на монаду Reader.
Примеры Directives:
request = req:HttpRequest => Success(req)
method = request(req).map(_.method)
inputStream = request(req).map(_.inputStream)
и т.д.
Благодаря тому, что Result это монада, эти самые функции-"директивы" (Directive) можно "композировать" с помощью >=> , и это хорошо.
Теперь вопросы:
- Зачем нужно придумывать специальную монаду Result, если уже есть Either ?
- С какой целью Directive сам сделан монадой ?
- Если Directive это монада, то почему не использовать монаду Reader ?
no subject
Про Directive ничего не скажу, надо разбираться.
no subject
Про директивы есть другое видео : http://2013.flatmap.no/teigen.html
(может, с'ездить в мае на эту конференцию ? регистрация 2К стоит)
no subject
no subject
no subject