Size: a a a

2021 March 03

AP

Aleksei (astynax) Pi... in Haskell
Ну да, когда свою монадку пишешь, неплохо бы законы проверить
источник

AP

Aleksei (astynax) Pi... in Haskell
В остальном же всё нужное на кончиках пальцев будет, когда кода достаточно попишешь
источник

[

[BRM]White Rabbit in Haskell
Я правильно понимаю, return можно использовать для создания только тех дата-тайпов, которые хоть одним вариантом могут принимать значение a(любое, ага)?
источник

MP

Misha Puzanov in Haskell
[BRM]White Rabbit
Я правильно понимаю, return можно использовать для создания только тех дата-тайпов, которые хоть одним вариантом могут принимать значение a(любое, ага)?
return - это для конструирования монадного контекста
там тип какой угодно может быть, достаточно чтобы монадические законы выполнялись
источник

[

[BRM]White Rabbit in Haskell
А, точно, я тупой.
Для return, получается, нужен инстанс в монаде, да?
источник

MP

Misha Puzanov in Haskell
это часть класса Monad, да
источник

MP

Misha Puzanov in Haskell
интуитивно, если есть return :: a -> m a, то результат обычно действитльно что-то "содержащее" а в том или ином виде
источник

[

[BRM]White Rabbit in Haskell
Так, меня тут не убьют за фото экрана? Я просто в шараге без инета в тихую разбираюсь в кодинге, тут инета нет😄
источник

MP

Misha Puzanov in Haskell
но STM a или IO a, например никакого контейнера для а не создают, это штука, которая влияет на control flow, если угодно
источник

[

[BRM]White Rabbit in Haskell
источник

MP

Misha Puzanov in Haskell
ну точнее IO кажется что-то там создает типа tuple, который вырезается оптимизатором, или типа того, здесь я могу наврать, но это не контейнер, в любом случае
источник

[

[BRM]White Rabbit in Haskell
Меня смутило то, что в левой идентичности к m ретурн применяется
источник

[

[BRM]White Rabbit in Haskell
Вот я и не понял, как оно должно работать
источник

к

кана in Haskell
интуитивно должно быть так, что если m это монада, то return x :: m a это вычисление, которое НЕ ДЕЛАЕТ эффекта
источник

AP

Aleksei (astynax) Pi... in Haskell
Монадическое вычисление имеет эффект + результат. return далает из значения результат вычисления, не производящий на деле никакого эффекта
источник

[

[BRM]White Rabbit in Haskell
кана
интуитивно должно быть так, что если m это монада, то return x :: m a это вычисление, которое НЕ ДЕЛАЕТ эффекта
Просто поднимает значение на монадический уровень, да?
источник

к

кана in Haskell
+
источник

к

кана in Haskell
это хорошо видно в имени функции - pure

это тот же return, только еще в аппликативе. return остается сейчас с легаси времен, когда класс монад не требовал инстанс аппликатива
источник

AP

Aleksei (astynax) Pi... in Haskell
у return плохо имя выбрано
источник

Y

Yuuri in Haskell
Aleksei (astynax) Pirogov
у return плохо имя выбрано
Как, кстати, его выбирали?
источник