Size: a a a

2021 April 14

[

[BRM]White Rabbit in Haskell
Cоответственно, моя версия выглядит примерно так
источник

TZ

Timofey Zakrevskiy in Haskell
А чем нынче принято лечить
.stack/setup-exe-cache/x86_64-linux-nix/Cabal-simple_mPHDZzAJ_3.2.1.0_ghc-8.10.4: startProcess: runInteractiveProcess: exec: does not exist (No such file or directory)?
источник

AS

Anton Sorokin in Haskell
stack purge && stack build?
источник

TZ

Timofey Zakrevskiy in Haskell
stack притащен никсом, в стак-ямле
nix:
 enable: true
 packages: [protobuf]
 pure: false
источник

TZ

Timofey Zakrevskiy in Haskell
ничего не изменилось
источник

JS

Jerzy Syrowiecki in Haskell
это он пытается запустить программу exec?
источник

TZ

Timofey Zakrevskiy in Haskell
Не знаю
источник

L

Lierdakil in Haskell
Очередной глупый вопрос. Есть вот такой умеренно бесполезный тип
data Peano = Z | S Peano
data Vec (n :: Peano) a where
 VNil :: Vec 'Z a
 VCons :: a -> Vec n a -> Vec ('S n) a

Он очевидно функтор, чуть менее очевидно аппликативный (зиппер). На первый взгляд (и на второй, но может я чего не вижу) -- не монада. Как это можно внятно обосновать кроме "ну у всех инстансов которые я придумал законы не выполняются"? Или всё-таки монада и я недодумал?
источник

K

Kir in Haskell
Он аппликативный только если из него аналог ZipList сделать. А не-монада он, потому что n должно быть фиксировано тогда.
источник

L

Lierdakil in Haskell
Не осмыслил. n как раз таки фиксирован в типе (>>=) :: Monad (Vec n) => Vec n a -> (a -> Vec n b) -> Vec n b. Собственно потому из него монада и не получается (по крайней мере у меня в голове). Но я пока не построил логическую цепочку от одного к другому, поэтому и вопрос.
источник

K

Kir in Haskell
Чисто логически нет вменяемого способа сделать это для простоянного n
источник

АХ

Алексей Худяков... in Haskell
Монада: join ((a,_), (_,b)) = (a,b)
источник

АХ

Алексей Худяков... in Haskell
join - берёт диагональ
источник

Y

Yuuri in Haskell
Опередили
источник

L

Lierdakil in Haskell
Да, действительно, законы вроде выполняются. Недодумал.
источник

L

Lierdakil in Haskell
Спасибо!
источник

L

Lierdakil in Haskell
Вроде осознал. Vec n a изоморфен (исключая bottom) Fin n -> a, а (->) (Fin n) монада потому что (->) r монада. Инстансы одинаковые с точностью до типов.
источник

IK

Ilya Kos in Haskell
Поясните плиз что тут написано. Я тут вижу инстанс монады для newtype Foo a = Foo (a, a), но это явно не то
источник

JS

Jerzy Syrowiecki in Haskell
гомогенная пара — это Vec 2, по аналогии можно продлить до любого размера
источник

IK

Ilya Kos in Haskell
А
источник