
Aleksey
10.10.2017
12:54:52
Но проще уж через ap, даже если его придется самому сделать из методов функтора и монады :)
l2 f x y = return f `ap` x `ap` y
:)

Alexander
10.10.2017
12:57:09
l2 f x y = do { a <- x ; b <- y; f a b}
не благодарите

Google

Mikhail
10.10.2017
12:58:24
^ top ?

Aleksey
10.10.2017
12:58:36
do-нотация - читерство!

Denis
10.10.2017
12:58:47
do нотация чаще читабельней)

Aleksey
10.10.2017
12:59:18
В монадическом коде - бывает
ap f x = f >>= (=<< x) :) Жаль, что f >>= $ =<< x нельзя

Alexandr
10.10.2017
13:01:08

Aleksey
10.10.2017
13:01:37
> :t \f x y -> x >>= (y >>=) . f
\f x y -> x >>= (y >>=) . f
:: Monad m => (a1 -> a -> m b) -> m a1 -> m a -> m b
не тайпчекается :)

Alexander
10.10.2017
13:02:23
иногда inline do нотация удобна

Alexandr
10.10.2017
13:02:25
l2 :: Monad m => (a -> b -> c) -> m a -> m b -> m c

Alexander
10.10.2017
13:02:36
но если это учебная задача, но это читерство

Alexandr
10.10.2017
13:02:49

Google

Nickolay
10.10.2017
13:03:08
ну ты сам можешь исправить же
просто добавь воды^W return

Alexander
10.10.2017
13:03:31
сейчас ещё весёлое сооружу

Aleksey
10.10.2017
13:03:57
l2 f x y -> x >>= (<$> y) . f
:: Monad m => (a1 -> a -> b) -> m a1 -> m a -> m b

Alexandr
10.10.2017
13:05:15

Nickolay
10.10.2017
13:06:51
сразу стало всё понятно, не правда ли? :)

Alexandr
10.10.2017
13:07:10
не особо ?

Alexander
10.10.2017
13:07:20
join $ fmap (join $ fmap f a) b :: Monad m => m a
предлагали?

Nickolay
10.10.2017
13:07:47
Лёша пытался)

Aleksey
10.10.2017
13:08:13
Ага, мой вариант в виде шашлыка из fmap и join где-то выше :)

Alexander
10.10.2017
13:08:18
можно даже join . fmap (join $ fmap f a)

Alexandr
10.10.2017
13:08:21
да, но не проходит тайпчек

Nickolay
10.10.2017
13:08:57
ну просто тут до сих пор f :: a -> b -> m c
убери лишний join
сам найди)

Kirill
10.10.2017
13:09:49
мне одному тут кажется вариант с do-нотацией самым адекватным?)

Alexandr
10.10.2017
13:10:18
я просто не совсем понимаю джоина функции

Alexander
10.10.2017
13:10:26
fmap f a >>= \g -> g b

Alexandr
10.10.2017
13:10:41
у нас есть m (b -> c), но join делает m (m a) -> m a

Alexander
10.10.2017
13:10:43
а неэто не прокатит уже

Google

Alexander
10.10.2017
13:11:06
fmap f a :: f (m (b-> m c))

Nickolay
10.10.2017
13:11:08

Alexander
10.10.2017
13:11:46
если применяешь join то он: а, говорит что f ~ m, б. из m (m (b-> m c)) делает m (b -> m c)

Aleksey
10.10.2017
13:12:51
join помогает, когда до`fmap`аешься до двойного уровня вложенности :)

Alexander
10.10.2017
13:25:32
или:
join $ atomically $ ... >> return (someIOEffect)

Ilya
10.10.2017
13:26:08
думаю многие поймут:)

Alexandr
10.10.2017
13:29:19
в итоге решил вот так:
l2 f x y = fmap f x »= (<$>y)
спасибо за помощь!

Aleksey
10.10.2017
13:32:13
f <$> x >>= (<$> y) тогда уж для единообразия, или
fmap f x >>= (`fmap` y)

Alexandr
10.10.2017
13:32:45
ну так красивее, да:)

Yuriy
10.10.2017
13:33:26
митап-посиделки — это один "лёгкий" доклад
под пиво/кофе
если кот-нибудь предложит доклад

IC
10.10.2017
13:39:14
ежегодный рейд рухаскеля в соседние данжи объявляется открытым!
https://bezkassira.by/fby_conference_2017-3092/

Pig
10.10.2017
13:39:17
постоянно её читаю, а все из-за маленького словарного запаса, сложно придумывать названия для аргументов

Alexander
10.10.2017
13:52:11
Ближайшие конференции:
28 Окрября - ITGM СПб
Декабрь 2 - Москва fpconf http://fpconf.ru/
Декабрь 17 - F(by) Conf http://fby.by

Yuriy
10.10.2017
13:52:21

Google

Yuriy
10.10.2017
13:53:51

Aleksey
10.10.2017
13:53:59
"главу про бесточечную запись", вестимо

Nickolay
10.10.2017
14:08:00

Alexander
10.10.2017
14:08:22
поздно о нём уже предупреждать наверное?

Nickolay
10.10.2017
14:08:30
Кто-то будет там, кроме меня и Волкова?
Алсо, в феврале Lambda Days в Польше

Denis
10.10.2017
14:09:30
я бойкотирую великобританию, так что нет

Nickolay
10.10.2017
14:09:45

Denis
10.10.2017
14:10:07
теперь это взаимно

Nickolay
10.10.2017
14:11:56
http://www.lambdadays.org/lambdadays2018

Leonid
10.10.2017
14:22:51
что за ITGM?
http://piter-united.ru/itgm11/ это?

? animufag ?
10.10.2017
14:25:38
видимо да
там все подряд кто хоть как-то имеет отношение к ит, так что наверное скучно

Leonid
10.10.2017
14:27:04
да, мутновато

Vladimir
10.10.2017
14:42:38
а разве не интересно пообщаться с людьми, которые занимаются чем-то другим?

Leonid
10.10.2017
15:01:21
Например?

Yuriy
10.10.2017
15:58:34

Denis
10.10.2017
15:59:22
не расскажу, это не про хаскелль

illiatshurotshka❄️
10.10.2017
15:59:59

Google

? animufag ?
10.10.2017
16:06:06

illiatshurotshka❄️
10.10.2017
16:16:14
а кто-нибудь пользуется https://github.com/enomsg/vim-haskellConcealPlus ?

Vasiliy
10.10.2017
16:17:45
я пробовал - выглядит прикольно, конечно, но редактировать такой код нереально
на текущей строке все эти штуки разворачиваются, в итоге нажимая, скажем, j ожидаешь, что попадёшь в одно место, а оказываешься в совершенно другом

illiatshurotshka❄️
10.10.2017
16:20:41
оо, в емаксе только если возле символа

Vasiliy
10.10.2017
16:21:00
лучше использовать шрифт с лигатурами типа FiraCode, Hasklig или PragmataPro
а если хочешь, чтоб тебя возненавидели, включай UnicodeSyntax :D

Dmitry
10.10.2017
16:37:35
Кстати, кто-нибудь смог настроить FiraCode на emacs на какой-нибудь убунте? Я пытался одно время, но не особо вышло :(

illiatshurotshka❄️
10.10.2017
16:40:23
можно спросить в чате @ emacs_ru (я fira code не смог настроить но iosevka смог; в emacs нет нормальной поддержки лигатур и поэтому используются страшные хаки)

Pig
10.10.2017
16:42:33
ты настроил иосевку в имаксе?

illiatshurotshka❄️
10.10.2017
16:42:43
да

Pig
10.10.2017
16:42:58
вообще под мак есть сборка которая поддерживает лигатуры из коробки
по аналогии с фирой?

illiatshurotshka❄️
10.10.2017
16:43:42
там какой-то хороший человек сделал скрипт который генерирует конфиг с которым нужно компилить шрифт и конфиг для emacs prettify-symbols-mode

Pig
10.10.2017
16:44:24
круто, когда я последний раз смотрел ничего такого не было

illiatshurotshka❄️
10.10.2017
16:44:33
я его долго искал)

Pig
10.10.2017
16:45:24
кинь в тот чат

Alexander
10.10.2017
17:06:24
где-нить недели через 2
а то слишком мало времени от него прошло