Size: a a a

2020 July 05

TA

Tel Asc in Haskell
Tel Asc
Я посмотрел на комонаду в хаскеле:
И это как-то так:
class Comonad m where
     coreturn :: m a -> a
     cobind :: m a -> (m a -> b) -> m b

Так что это вывернутая комонада)

Хотя нет,это скорее КонтрКоМонада)
Вообще идеальным решением было бы придумать какой-то обобщение для всех этих монад,и потом для этого обобщения придумать фри монаду...
Но это уже вообще теряет всякий смысл ...
Это все слишком абстрактно, хотя...
В теории обобщением может быть такой класс:

class (Category f)=>AllMonad f m where
  return :: f a a
  return = id
  bind :: f a b -> (m a -> m b)

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

K

Kir in Haskell
Tel Asc
Вообще идеальным решением было бы придумать какой-то обобщение для всех этих монад,и потом для этого обобщения придумать фри монаду...
Но это уже вообще теряет всякий смысл ...
Это все слишком абстрактно, хотя...
В теории обобщением может быть такой класс:

class (Category f)=>AllMonad f m where
  return :: f a a
  return = id
  bind :: f a b -> (m a -> m b)

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

LO

Leonid 🦇 Onokhov in Haskell
Andrey
а как надо?
Откуда ч знаю что тебе надо :)
источник

K

Kir in Haskell
Стрелки, как мне кажется, являются хорошей абстракцией над ко-, контра- и просто монадами.
источник

K

Kir in Haskell
Они ещё выглядят как воплощение Compiling to Categories
источник

TA

Tel Asc in Haskell
Kir
Стрелки, как мне кажется, являются хорошей абстракцией над ко-, контра- и просто монадами.
А можно пример как написать что-то вроде клейсли для комонады?
источник

K

Kir in Haskell
Как доберусь до компьютера, скину. С телефона не удобно :)
источник

TA

Tel Asc in Haskell
И главный вопрос:
Для каких абстракций стрелки вообще являются общением?
(Кроме монад,моноидов,комонад)
источник

LO

Leonid 🦇 Onokhov in Haskell
Профунктор +  arr
источник

LO

Leonid 🦇 Onokhov in Haskell
И (.)
источник

K

Kir in Haskell
Tel Asc
И главный вопрос:
Для каких абстракций стрелки вообще являются общением?
(Кроме монад,моноидов,комонад)
Для любых функциеподобных конструкций. В самом базовом классе стрелок есть  конструктор из чистых фукций и композиция, если мне не изменяет память.
источник

K

Kir in Haskell
Т.е., стрелка описывает последовательность вычислений.
источник

K

Kir in Haskell
В хаскелле для стрелок даже отдельный proc do синтаксис имеется.
источник

K

Kir in Haskell
источник

TA

Tel Asc in Haskell
Тогда возникает вопрос:
А почему бы не описать фри стрелку?
И с помощью фри стрелки сделать фри контрмонаду...
источник

ЗП

Зигохистоморфный Пре... in Haskell
Leonid 🦇 Onokhov
Профунктор +  arr
профунктор, стронг и тд
источник

LO

Leonid 🦇 Onokhov in Haskell
Kir
В хаскелле для стрелок даже отдельный proc do синтаксис имеется.
И это единственная причина использовать стрелки
источник

TA

Tel Asc in Haskell
Tel Asc
Тогда возникает вопрос:
А почему бы не описать фри стрелку?
И с помощью фри стрелки сделать фри контрмонаду...
Хотя нет,это не то...
Всё-таки нужны контрмонады отдельно...
Нужна какая-то другая абстракция...
Повыше монад и пониже категорий и стрелок ...
источник

ЗП

Зигохистоморфный Пре... in Haskell
а можно сделать профунктор нотейшн?
источник

TZ

Timofey Zakrevskiy in Haskell
я что-то пропустил - что есть контрмонада?
источник