Size: a a a

2021 February 09

KV

Kirill Valyavin in Haskell
barbies-th нормальное решение предлагает, мне понравилось
источник

ЗП

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

KV

Kirill Valyavin in Haskell
Это тоже подходит, но нафига мне то же самое на дженериках, когда есть тх
источник

KV

Kirill Valyavin in Haskell
Мб в хигглди есть какие-то фичи, которых нет на тх, но это не мой случай
источник

IO

I O in Haskell
кана
с HKD+generics-sop-ом сложность в том, что я не нашел какого-нибудь тривиального способа написать NP I [f a, f b] -> NP f [a, b]
Такое не считается достаточно тривиальным?
источник

к

кана in Haskell
я думаю что нет)
источник

IO

I O in Haskell
Ладно(
источник

к

кана in Haskell
ну, когда я делал, я оставил просто

type family Map f xs where
 Map _ '[] = '[]
 Map f (x:xs) = f x : Map f xs

f :: NP I (Map f xs) -> NP f xs
f = unsafeCoerce
источник

к

кана in Haskell
вот это тривиально)
источник

KV

Kirill Valyavin in Haskell
кана
ну, когда я делал, я оставил просто

type family Map f xs where
 Map _ '[] = '[]
 Map f (x:xs) = f x : Map f xs

f :: NP I (Map f xs) -> NP f xs
f = unsafeCoerce
Вот это я понимаю боринг хаскель
источник

KV

Kirill Valyavin in Haskell
Расскажите, почему у мапы нет аппликатива?
источник

KV

Kirill Valyavin in Haskell
А, потому что там не написать pure без извращений
источник

к

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

KV

Kirill Valyavin in Haskell
Но мне не нужно pure, мне нужно только strength
источник

к

кана in Haskell
combine :: Map k v1 -> Map k v2 -> Map k (v1, v2)
combine = liftA2 (,)

combine
 (fromList [(a, 1), (b, 2)])
 (fromList [(c, 3), (b, 2)])

должен быть

fromList [(b, (2, 2))]

?
источник

KV

Kirill Valyavin in Haskell
Да
источник

KV

Kirill Valyavin in Haskell
Т. е. интуитивно pure x должно быть мапой, которая на любой ключ даёт x
источник

KV

Kirill Valyavin in Haskell
Но это дурь какая-то
источник

KV

Kirill Valyavin in Haskell
Не, ну так-то почему бы и нет. Можно сделать тип
data AMap k v = PureMap v | ProperMap (Map k v)
источник

к

кана in Haskell
а чему будет равен
PureMap v `delete` k
?
источник