Size: a a a

2021 January 23

ЗП

Зигохистоморфный Пре... in Haskell
A64m AL256m qn I0
а что если имплицит с реифицированными gadt имплицитами?
это как?
источник

AA

A64m AL256m qn<co... in Haskell
источник

AA

A64m AL256m qn<co... in Haskell
Переслано от A64m AL256m qn<co...
{-# LANGUAGE ImplicitParams, ConstraintKinds, GADTs, RankNTypes #-}

module Main where
— начинается имплементация рекордов

data Rec fields where
   Rec :: fields => Rec fields

infixr 1 ?
(?) :: Rec fields -> (fields => r) -> r
Rec ? e = e

— готово

type RXY = Rec (?x::Int, ?y::Int)

xy, xy' :: RXY

xy = let ?x = 1; ?y = 2 in Rec

xy' = Rec where ?x = 3; ?y = 4

foo :: RXY -> Int
foo r = r ? ?x + ?y

type RZ = Rec (?z::Int)

z :: RZ
z = Rec where ?z = 42

— type RXYZ = (RXY, RZ)
type RXYZ = Rec (?x::Int, ?y::Int, ?z::Int)

xyz :: RXYZ
xyz = xy ? z ? Rec — concatenation

t1 = foo xy
t2 = foo (xyz ? Rec) — subtyping
t3 = foo (xy ? Rec)

main = print $ foo xy
источник

к

кана in Haskell
блин, ghc не нормализует произведения констрейнтов

((a, b), c) это не то же самое что и (a, (b, c)), и не (a, b, c)
источник

к

кана in Haskell
источник
2021 January 24

ЗП

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

ЗП

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

D

Dreamerinnoise in Haskell
в хАсКеЛе Не НуЖеН дЕпЕнДеНсИ иНжЕкТшн
источник

Aλeχ Λisenκo in Haskell
Жава чувачок видимо
источник

KV

Kirill Valyavin in Haskell
Dreamerinnoise
в хАсКеЛе Не НуЖеН дЕпЕнДеНсИ иНжЕкТшн
Кто-нибудь когда-нибудь на самом деле так говорил?
источник

AA

A64m AL256m qn<co... in Haskell
скаластрадальцы
источник

D

Dreamerinnoise in Haskell
Kirill Valyavin
Кто-нибудь когда-нибудь на самом деле так говорил?
было такое на стековерфлоу
источник

D

Dreamerinnoise in Haskell
I think the proper answer here is, and I will probably receive a few downvotes just for saying this: forget the term dependency injection. Just forget it. It's a trendy buzzword from the OO world, but nothing more.
источник

D

Dreamerinnoise in Haskell
источник

KV

Kirill Valyavin in Haskell
Dreamerinnoise
I think the proper answer here is, and I will probably receive a few downvotes just for saying this: forget the term dependency injection. Just forget it. It's a trendy buzzword from the OO world, but nothing more.
И что не так
источник

ЖК

Жук Короед in Haskell
Kirill Valyavin
Кто-нибудь когда-нибудь на самом деле так говорил?
Марк Симан говорил, но не именно про хаскель, а про ФП в общем.
https://youtu.be/cxs7oLGrxQ4
источник

ЗП

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

• Expected kind ‘Exp (TreeF a0 (Tree a0))’,
       but ‘Project ('Node x xs)’ has kind ‘Base (Tree a0) (Tree a0) -> *’


data Tree a = Node a [Tree a]
data TreeF a b = NodeF a [b]

type instance Eval (Map f ('NodeF a '[])) = 'NodeF a '[]
type instance Eval (Map f ('NodeF a (b ': bs))) = 'NodeF a (Eval (Map f (b ': bs)))

type instance Base (Tree a) = TreeF a

type instance Eval (Project ('Node x xs)) = 'NodeF x xs


но type Exp a = a -> Type это и есть то, что мне нужно
источник

ЗП

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

ЗП

Зигохистоморфный Пре... in Haskell
Exp (TreeF a0 (Tree a0))

по определению Exp
Base (Tree a0) (Tree a0) -> Type
источник

JS

Jerzy Syrowiecki in Haskell
Зигохистоморфный Препроморфизм
Exp (TreeF a0 (Tree a0))

по определению Exp
Base (Tree a0) (Tree a0) -> Type
а само определение Exp как выглядит?
источник