Size: a a a

2021 February 02

YS

Yan Shkurinskiy in Haskell
А в фт формально ты должен все констрейнты перечислить
источник

YS

Yan Shkurinskiy in Haskell
Но это, кмк, не меняет того факта, что фт (с точки зрения хаскеля) - просто проброс функций, которые разрешаются на уровне инстанс резолюшены
источник

YS

Yan Shkurinskiy in Haskell
Вместо честного создания фримонадического значения, которое потом скормится интерпретатору
источник

MK

Maxim Koltsov in Haskell
Yan Shkurinskiy
Вместо честного создания фримонадического значения, которое потом скормится интерпретатору
И будет адски тормозить
источник

YS

Yan Shkurinskiy in Haskell
Это другой вопрос!)
источник

YS

Yan Shkurinskiy in Haskell
Мой посыл - не всё упирается в написание интерпретаторов
источник

MK

Maxim Koltsov in Haskell
А с фьюзд эффектс например будет другое
источник

YS

Yan Shkurinskiy in Haskell
Yan Shkurinskiy
Мой посыл - не всё упирается в написание интерпретаторов
что-то упирается в написание словариков*
источник

YS

Yan Shkurinskiy in Haskell
(я могу быть неправ)
источник

Oℕ

Oleg ℕizhnik in Haskell
Ну т.е. вот есть функция

foo ::  (Baz + Quux )Foo

в тэглесс файнал форме

foo :: forall f. (Monad f, Bar f, Baz f) => f Foo

во фримонадной форме

foo :: forall f. (Inject Bar f, Inject Baz f) => Free f Foo

далее интерпретация
в первом случае - это предоставление (Monad r, Bar r, Baz r), это явно написано в сигнатуре
во втором - это предоставление
Monad r,
Bar ~> r,
Baz ~> r
это ещё нужно вычислить из сигнатуры
источник

Oℕ

Oleg ℕizhnik in Haskell
в каком это смысле фримонадная более явная
источник

YS

Yan Shkurinskiy in Haskell
Более явная в том смысле, что там есть четко место интерпретации языка
источник

Oℕ

Oleg ℕizhnik in Haskell
Yan Shkurinskiy
Более явная в том смысле, что там есть четко место интерпретации языка
ну вот в тэглес файнал я вижу это место, это место всех констрейтов на f, а где это место для фримонад?
источник

YS

Yan Shkurinskiy in Haskell
Интерпретации в том смысел, что "кому-то" подается "код на каком-то языке" и потом "что-то из него производится"
источник

Oℕ

Oleg ℕizhnik in Haskell
Yan Shkurinskiy
Интерпретации в том смысел, что "кому-то" подается "код на каком-то языке" и потом "что-то из него производится"
ну да, это во всех случаях так
источник

Aλeχ Λisenκo in Haskell
Есть ли еще какая-то разница кроме метода интерпретации и стексейвти в случае фри монад?
источник

YS

Yan Shkurinskiy in Haskell
Oleg ℕizhnik
ну да, это во всех случаях так
там в случае фт на место вызова просто подставятся функции, нет?
источник

YS

Yan Shkurinskiy in Haskell
можно ли это считать интерпретацией?
источник

Oℕ

Oleg ℕizhnik in Haskell
Yan Shkurinskiy
там в случае фт на место вызова просто подставятся функции, нет?
и в случае фримонад тоже подставятся функции в определённые места
источник

YS

Yan Shkurinskiy in Haskell
Oleg ℕizhnik
и в случае фримонад тоже подставятся функции в определённые места
их подставит интерпретатор, а перед тем как поставит - будет сформирован "код на внутреннем языке"
источник