Два года в /fg/. Войти !bnw Сегодня Клубы
Задача из #A6RBIH сводится к следующему вопросу: можно ли заставить компилятор преобразовывать ; в `>>=`, а не `>>`? Тогда в do notation можно будет записывать такой себе dataflow: do { return 1; return . (+1); print }. Сейчас это можно сделать, только введя явные названия для аргументов: do { s <- return 1; s' <- return (s+1); print s' } С обычной записью, конечно же, никаких проблем: return 1 >>= return . (+1) >>= print
#FCP02G / @minoru / 4420 дней назад

А переопределить метод >> нельзя чтоле?
#FCP02G/3WR / @plhk / 4420 дней назад
@plhk Можно, но у него сигнатура Monad m => m a -> m b -> m b, то есть я не могу ничего передать из первого аргумента во второй — они как бы независимы, хоть и работают в одной монаде. Сравни с >>= :: Monad m => m a -> (a -> m b) -> m b, который позволяет выстраивать из выислений цепочку, по которой идут данные.
#FCP02G/YLX / @minoru --> #FCP02G/3WR / 4420 дней назад
Запросто. Берёшь Template Haskell и патчишь AST как угодно.
#FCP02G/W16 / @anonymous / 4407 дней назад
@kagami Точно, а я о нём и не подумал даже. Спасибо!
#FCP02G/SH1 / @minoru --> #FCP02G/W16 / 4407 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.