Size: a a a

2021 April 03

t

toriningen in Haskell
Kirill Valyavin
Ну Вы понимаете, зачем у списков ассоциировать конкатенацию?
да
источник

t

toriningen in Haskell
хотя теперь не уверен
источник

t

toriningen in Haskell
ааааАААА *бегает кругами*
источник

K

Kir in Haskell
В случае построения из сырого Free это (t >>= ma) >>= mb, в случае Codensity оно волшебным образом правоассоциативное. Просто на время постройки выражения тупо сдедайте Codensity (Free f), а прямо перед ииспользованием посредством improve выдерите старый добрый Free f и работайте с ним, как раньше.
источник

K

Kir in Haskell
источник

K

Kir in Haskell
У него есть lift чтобы засовывать в него всякое
источник

t

toriningen in Haskell
да-да, я тут. просто если сделать так, как вы пишете, как это позволит мне теоретически выполнять всякие свертки/разделения узлов?
источник

K

Kir in Haskell
toriningen
да-да, я тут. просто если сделать так, как вы пишете, как это позволит мне теоретически выполнять всякие свертки/разделения узлов?
Нет, для этого вам нужно ограничиться аппликативом и спроектировать ваш аппликатив так, чтобы его можно было так оптимизировать. Или взять свободный аппликатив какой-нибудь.

Monads are nono
источник

к

кана in Haskell
а, никак, там же сразу было написано что это не имеет отношения к задаче)
источник

KV

Kirill Valyavin in Haskell
toriningen
да-да, я тут. просто если сделать так, как вы пишете, как это позволит мне теоретически выполнять всякие свертки/разделения узлов?
Нет, это чисто трюк чтобы фримонады меньше тормозили
источник

t

toriningen in Haskell
а, понял. жаль...
источник

t

toriningen in Haskell
я ложно предположил, что есть путь добиться желаемого, но он лежит через овраг с крокодилами
источник

t

toriningen in Haskell
и уже приготовился понимать принцип работы крокодилов
источник

K

Kir in Haskell
У Гранина, к слову, Codensity "встроено" руками в функторы, из которых он собирает свой мега-функтор уровня приложения
источник

KV

Kirill Valyavin in Haskell
toriningen
а, понял. жаль...
В общем если не хотите читать про селективы, то просто меняйте во фримонаде бинд с функции на мапу. И анализируйте всё дерево возможных астшек
источник

t

toriningen in Haskell
я уже прочитал про селективы - ну, с практической точки зрения
источник

K

Kir in Haskell
Kirill Valyavin
В общем если не хотите читать про селективы, то просто меняйте во фримонаде бинд с функции на мапу. И анализируйте всё дерево возможных астшек
Это ж комбинаторный взрыв
источник

t

toriningen in Haskell
и приходим к тому, что нельзя позволять творить, что угодно, надо ограничивать
источник

t

toriningen in Haskell
ладно, буду думать в сторону особых биндов
источник

KV

Kirill Valyavin in Haskell
Kir
Это ж комбинаторный взрыв
Ну да, так и скажем программисту, извини брат, но инструкции должны быть без ветвлений, а то комбинаторный взрыв получается!
источник