Size: a a a

2020 May 06

YS

Yan Shkurinskiy in Haskell
Я просто такой синтаксис редко встречал)
источник

YS

Yan Shkurinskiy in Haskell
И не видел его описания нигде
источник

YS

Yan Shkurinskiy in Haskell
Поэтому возникали вопросы о степени его валидности
источник

YS

Yan Shkurinskiy in Haskell
кана
я думаю компилятору все равно, вывести один словарик или кортеж словариков, это может быть и просто синтаксом
Кстати, по поводу словариков - надо смотреть, как выглядит преобразование в core, чтобы понять как оно под капотом работает?
источник

YS

Yan Shkurinskiy in Haskell
Я про тайпклассы
источник

DR

Denis Redozubov in Haskell
что там понимать?
источник

к

кана in Haskell
да работает как и ожидается,

class X a where
 a :: a
 b :: a -> a

instance X Int where
 a = 0
 b = id

f :: X a => a
f = b a

это условно
data X = X { a :: a, b ::  (a -> a)}
xInt :: X Int
xInt = X { a = 0, b = id }
f :: X a -> a
f (X a b) = b a

ток вроде все же без имен, и компилятор их сам пробрасывает как аргументы
источник

AA

A64m AL256m qn<co... in Haskell
Yan Shkurinskiy
Кстати, по поводу словариков - надо смотреть, как выглядит преобразование в core, чтобы понять как оно под капотом работает?
ну да, можно смотреть в корке как тайпклассы энкодятся, это хороший способ их понять
источник

YS

Yan Shkurinskiy in Haskell
A64m AL256m qn I0
ну да, можно смотреть в корке как тайпклассы энкодятся, это хороший способ их понять
Да, спасибо
источник

YS

Yan Shkurinskiy in Haskell
кана
да работает как и ожидается,

class X a where
 a :: a
 b :: a -> a

instance X Int where
 a = 0
 b = id

f :: X a => a
f = b a

это условно
data X = X { a :: a, b ::  (a -> a)}
xInt :: X Int
xInt = X { a = 0, b = id }
f :: X a -> a
f (X a b) = b a

ток вроде все же без имен, и компилятор их сам пробрасывает как аргументы
И за пример - спасибо)
источник

YS

Yan Shkurinskiy in Haskell
Denis Redozubov
что там понимать?
Ну вот есть что, особенно начинающим .-.
источник

к

кана in Haskell
было и стало
источник

к

кана in Haskell
реальный выхлоп Core, только переименовал аргументы
источник

к

кана in Haskell
кана
да работает как и ожидается,

class X a where
 a :: a
 b :: a -> a

instance X Int where
 a = 0
 b = id

f :: X a => a
f = b a

это условно
data X = X { a :: a, b ::  (a -> a)}
xInt :: X Int
xInt = X { a = 0, b = id }
f :: X a -> a
f (X a b) = b a

ток вроде все же без имен, и компилятор их сам пробрасывает как аргументы
вот этот пример, опять же после переименования
источник

YS

Yan Shkurinskiy in Haskell
кана
вот этот пример, опять же после переименования
Надо будет посмотреть, спасибо!
источник

ЗП

Зигохистоморфный Пре... in Haskell
вопрос
источник

ЗП

Зигохистоморфный Пре... in Haskell
имея

class Functor f <= Coapply f where
 coapply :: forall a b. f (Either a b) -> f (a -> b) -> f b


получить

someFn :: forall f a b. Coapply f => f (Either a b) -> Either (f a) (f b)
источник

к

кана in Haskell
никак, у тебя же нет f (a - b)
источник

к

кана in Haskell
и из контекта f не выйти, так что это будет решение вида

someFn x = Left (coapply x (pure id))

только pure у тебя нет, поэтому никак
источник

к

кана in Haskell
а нет
источник