Size: a a a

Clojure — русскоговорящее сообщество

2020 November 04

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Пайплайн вообще не очень понятно что такое
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Подразумевает наличие пайпов?
источник

O

Ortofax in Clojure — русскоговорящее сообщество
возможно. для меня это |> из фшарпа
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
А пайпы скажем в юниксе подразумевают один тип - строка
источник

O

Ortofax in Clojure — русскоговорящее сообщество
ETL
Просто я топлю за то, что каждый язык предоставляет свой набор средств выразительности, конкретная реализация которых обусловлена архитектурой языка. И, логично, что языки обладают какими-то общими паттернами, свойствами, поскольку решают в целом идентичные задачи, более того - нередко количество этих решений ограничено. Собственно, монады в Haskell существуют отчасти  (или во многом) для того, чтобы решить вычислительные проблемы, которые не могут быть решены иным образом. Зачем они нужны в совершенно других языках в том самом виде, в котором они представлены в Haskell? Только если в контексте "я художник - я так вижу", ну ок, чо)
затем, чтобы можно было их комбинировать без боли и создавать обобщенные функции, работающие с любыми монадами
источник

O

Ortofax in Clojure — русскоговорящее сообщество
(хотя комбинировать монады без боли это конечно фантастика)
источник

E

ETL in Clojure — русскоговорящее сообщество
Ortofax
пайплайн это, по сути функция с типом a -> (a -> b) -> b, у монады оператор bind с типом m a -> (a -> m b) -> m b. сигнатуры действительно похожи, можно сказать, что пайплайн это вставка функции a -> b между a и b, а байнд это вставка функции a -> m b между m a и m b. плюс у монад ещё есть способ a превратить в m a, а у пайплайна тривиальное отображение a в a
Ну тогда в рамках этой же логики можно утверждать, что $ :: (a -> b) -> a -> b - тоже почти монада
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
ETL
Ну тогда в рамках этой же логики можно утверждать, что $ :: (a -> b) -> a -> b - тоже почти монада
Тут нет контекста
источник

O

Ortofax in Clojure — русскоговорящее сообщество
так $ это флипнутый |>
источник

CD

Camina Drummer in Clojure — русскоговорящее сообщество
ETL
Оставляя за скобками fail (который есть возвращение сообщения об ошибке), их по сути два:

1.
1.1. берём значение "а" и помещаем его в контекст "м". Взяли число 8, получили Just 8 (читать как 8 в контексте Just)
2.
2.1. берём значение "а" в контексте "м" (Just 8
2.2. берём функцию, которая принимает значение "а" и возвращает значение типа "b" в контексте "м" (т.е. том же самом контексте, в котором находится "а" в п.2.1). Just 8 >>= intToString (это не Haskell, а как говорит Брагилевский - язык H; читать как взять Just 8 и штуку, которая применит функцию intToString к 8
2.3. возвращаем значение типа "б" в контексте "м"  (в данном случае - вернёт Just "8", т.е. вернёт значение другого типа)

P.S. Дэн Абрамов, если что говорил, что он не в курсе монад ) ничего - не помешало карьерному продвижению )
Типа пайплайн, но с подгонкой типов? 🤔
источник

E

ETL in Clojure — русскоговорящее сообщество
Anton Chikin
Тут нет контекста
А где он в |> ?
источник

CD

Camina Drummer in Clojure — русскоговорящее сообщество
Ortofax
пайплайн это, по сути функция с типом a -> (a -> b) -> b, у монады оператор bind с типом m a -> (a -> m b) -> m b. сигнатуры действительно похожи, можно сказать, что пайплайн это вставка функции a -> b между a и b, а байнд это вставка функции a -> m b между m a и m b. плюс у монад ещё есть способ a превратить в m a, а у пайплайна тривиальное отображение a в a
🤔
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
ETL
А где он в |> ?
Его нету
источник

CD

Camina Drummer in Clojure — русскоговорящее сообщество
** звуки скрежета мозга
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Camina Drummer
** звуки скрежета мозга
Брагилевского посмотри про монады
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Там у него как раз для тех кому это не особо надо но хочется понимать :)
источник

O

Ortofax in Clojure — русскоговорящее сообщество
ETL
Ну тогда в рамках этой же логики можно утверждать, что $ :: (a -> b) -> a -> b - тоже почти монада
да, можно сказать, что он изоморфен байнду монады id
источник

E

ETL in Clojure — русскоговорящее сообщество
Camina Drummer
Типа пайплайн, но с подгонкой типов? 🤔
Пайплайн выполняемый:
а) строго в контексте
б) допускающий, что тип значения на входе и на выходе может быть разный
источник

CD

Camina Drummer in Clojure — русскоговорящее сообщество
Anton Chikin
Брагилевского посмотри про монады
Можно ссылочку на конкретный видос? не могу на канале понять что именно надо
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Ну вся суть монады что значение и вычисления постоянно в контексте в извлечение из контекста - скрытая от пользователя боль
источник