Size: a a a

2020 December 09

AP

Aleksei (astynax) Pi... in fprog_spb
Yuuri
Математика — это лисп?!
Да, с альтернативным ридером просто
источник

AP

Aleksei (astynax) Pi... in fprog_spb
LaTeX(ps) вместо S-exps
источник

АГ

Александр Гранин... in fprog_spb
Aleksei (astynax) Pirogov
Ну вот и профункторы запомнит
Профункторы имеют крайне мало шансов войти в common knowledge разработчиков даже на Хаскеле, не говоря уже о мейнстриме. А следовательно требовать это знание от людей - все равно что самоизолироваться в очень маленькой и никому ненужной нише
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Пфф
источник

AP

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

AP

Aleksei (astynax) Pi... in fprog_spb
Уже Elm есть
источник

АГ

Александр Гранин... in fprog_spb
Kir
Я согласен с тем, что заменять домен конструкциями из теорката не нужно.

Мне не нравится подход Free Foo, где Foo - язык бога.
Во-первых, я хочу иметь сумму языков и возможность составом этой суммы манипулировать. Это не бизнес-задача, это то, что мне нужно для выполнения бизнес-задач и внутреннего комфорта. Поэтому

-- reaaly fast because index-tagged!
import "fastsum" Data.Sum

kind Effs :: [* -> *] -> * -> *
type Effs fs a = Free (Sum fs) a


Ну а дальше из всех возможных языков надо устранить нехобходимость работать с продолжениями руками:
import "free" Control.Monad.Codensity
import "fastsum" Data.Sum

kind Effs :: [* -> *] -> * -> *
type Effs fs = Codensity (Free (Sum fs))


И до системы эффектов остаётся один шаг - просунуть финальную монаду во все эффекты параметром.
> Это не бизнес-задача, это то, что мне нужно для выполнения бизнес-задач и внутреннего комфорта.

Или не нужно. Исходя из своей практики, я склонен верить, что не нужно. Принцип YAGNI в действии
источник

AT

Alexander Tchitchigi... in fprog_spb
Kir
Я согласен с тем, что заменять домен конструкциями из теорката не нужно.

Мне не нравится подход Free Foo, где Foo - язык бога.
Во-первых, я хочу иметь сумму языков и возможность составом этой суммы манипулировать. Это не бизнес-задача, это то, что мне нужно для выполнения бизнес-задач и внутреннего комфорта. Поэтому

-- reaaly fast because index-tagged!
import "fastsum" Data.Sum

kind Effs :: [* -> *] -> * -> *
type Effs fs a = Free (Sum fs) a


Ну а дальше из всех возможных языков надо устранить нехобходимость работать с продолжениями руками:
import "free" Control.Monad.Codensity
import "fastsum" Data.Sum

kind Effs :: [* -> *] -> * -> *
type Effs fs = Codensity (Free (Sum fs))


И до системы эффектов остаётся один шаг - просунуть финальную монаду во все эффекты параметром.
А что это за синтаксис импортов?
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Alexander Tchitchigin
А что это за синтаксис импортов?
всегда был такой, packageimports
источник

K

Kir in fprog_spb
PackageImports
источник

AT

Alexander Tchitchigi... in fprog_spb
Aleksei (astynax) Pirogov
Потому что инаково. А не потому что сложно
Это к тому, что даже бизнес-велью (быстро, дёшево) — не аргумент. Для тех, кому "активно не интересно".
источник

АГ

Александр Гранин... in fprog_spb
Aleksei (astynax) Pirogov
Я знаю только одну устоявшуюся практику в мейнстриме — игнорировать и/или осуждать всё немейнстримовое.
Мейнстрим большой. В нем хватает разных мнений
источник

K

Kir in fprog_spb
Александр Гранин
> Это не бизнес-задача, это то, что мне нужно для выполнения бизнес-задач и внутреннего комфорта.

Или не нужно. Исходя из своей практики, я склонен верить, что не нужно. Принцип YAGNI в действии
Ну можно и на golang программировать, if err != nil, как говорится. У нас мощный язык, всё-таки, а мы CPS-оптимизацию фримонады делаем руками.
источник

AT

Alexander Tchitchigi... in fprog_spb
Александр Гранин
Профункторы имеют крайне мало шансов войти в common knowledge разработчиков даже на Хаскеле, не говоря уже о мейнстриме. А следовательно требовать это знание от людей - все равно что самоизолироваться в очень маленькой и никому ненужной нише
"Паттерны проектирования имеют крайне мало шансов войти в common knowledge разработчиков на JavaScript". Кому не пофиг? 😂
источник

K

Kir in fprog_spb
Aleksei (astynax) Pirogov
Уже Elm есть
Не вспоминай. Это живой (кхм) пример того, как не надо упрощать, чтобы js-ники не разбегались - и всё равно разбегаются
источник

АГ

Александр Гранин... in fprog_spb
Kir
Например? Ну, кроме того, что порядок слоя обработки ошибок решает, как оно взаимодействует с эффектами.
Ну а почему вообще речь идет про механизмы эффектов? Где сами бизнесовые задачи, которые требуется решить? Я могу лишь сделать референс на статью Де Гуза "effect tracking is commercially worthless", да на свою про HFM. Не хочу повторять одно и то же много раз, тем более что (смотри картинку про уровни) разговор не склеится все равно. Я рассуждаю про верхнеуровневые концепции дизайна приложений, про риски и complexity, а рассуждения в стиле "можно функтор засунуть в фри монаду" - это все самый нижний уровень, а именно - детали имплментации.
https://degoes.net/articles/no-effect-tracking
https://github.com/graninas/hierarchical-free-monads-the-most-developed-approach-in-haskell
источник

АГ

Александр Гранин... in fprog_spb
Aleksei (astynax) Pirogov
Предпочту избегание успеха перекраиванию терминологии в пользу сирых и новичков
От тебя не ожидал, но ладно
источник

YS

Yan Shkurinskiy in fprog_spb
И ты, Брут...
источник

K

Kir in fprog_spb
Александр Гранин
Ну а почему вообще речь идет про механизмы эффектов? Где сами бизнесовые задачи, которые требуется решить? Я могу лишь сделать референс на статью Де Гуза "effect tracking is commercially worthless", да на свою про HFM. Не хочу повторять одно и то же много раз, тем более что (смотри картинку про уровни) разговор не склеится все равно. Я рассуждаю про верхнеуровневые концепции дизайна приложений, про риски и complexity, а рассуждения в стиле "можно функтор засунуть в фри монаду" - это все самый нижний уровень, а именно - детали имплментации.
https://degoes.net/articles/no-effect-tracking
https://github.com/graninas/hierarchical-free-monads-the-most-developed-approach-in-haskell
При чем здесь рыночный успех эффектов, если это деталь имплементации?
источник

АГ

Александр Гранин... in fprog_spb
Kir
Ну можно и на golang программировать, if err != nil, как говорится. У нас мощный язык, всё-таки, а мы CPS-оптимизацию фримонады делаем руками.
Это всё тоже про детали
источник