juan_gandhi: (VP)
[personal profile] juan_gandhi
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...

Date: 2014-03-08 11:22 am (UTC)
From: [identity profile] mikkim08.livejournal.com
Спасибо, очень интересно. Я тоже хочу писать как-нибудь вот так. Но есть вопросы:

Как я понял:

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 ?
Edited Date: 2014-03-08 11:45 am (UTC)

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

June 2025

S M T W T F S
1 2345 6 7
8 9 10 11 121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 19th, 2025 02:36 am
Powered by Dreamwidth Studios