Minoru 09.10.2012 13:34 micropost

Можно ли написать свою do notation, не меняя код компилятора, и если да, то как?

Например, в главе 10 RWH[1] мы пишем такой код:

```
arseP5_take2 s =
matchHeader (L8.pack "P5") s >>?
\s → skipSpace ((), s) >>?
(getNat . snd) >>?
skipSpace >>?
\(width, s) → getNat s >>?
skipSpace >>?
\(height, s) → getNat s >>?
\(maxGrey, s) → getBytes 1 s >>?
(getBytes (width * height) . snd) >>?
\(bitmap, s) → Just (Greymap width height maxGrey bitmap, s)
```

Было бы круто, если бы программист мог определить собственную do notation и избавиться от комбинатора `>>?` (спрятав его за преобразованиями, как это делается для >> в монадах). Это возможно?

  1. http://book.realworldhaskell.org/read/co...

Do you really want to delete ?