Size: a a a

2021 May 30

A

Aleksandr Khristenko in Haskell
Там же есть обходной путь для этого
источник

[

[BRM]White Rabbit in Haskell
какой?
источник

A

Aleksandr Khristenko in Haskell
Хотя может на счет c# я и ошибаюс.
В typescript/php это реализуется примерно так: создается тип HK параметризуемый 2мя типами, и дальше он используется там, где нужны hkt. Пример на typescript https://thesoftwaresimpleton.com/blog/2018/04/14/higher-kinded-types
источник

K

Kir in Haskell
interface HKT<F, A> {
 readonly _F: F;
 readonly _A: A;
}


> HKT takes 2 type parameters F and A. Thinking in terms of kinds, F represents the first class parameterised type (* -> *) and _A represents the ground type *.

> We can now define functor like this:

export interface Functor<F> {
 map<A, B>(f: (a: A) => B, fa: HKT<F, A>): HKT<F, B>
}


Как эта чёрная магия вообще работает и где там тайпкаст, в итоге?
источник

A

Aleksandr Khristenko in Haskell
Ну в хаскеле у нас map :: (a -> b) -> ma -> mb
В примере выше F соответствует m, А - а, B - b
источник

K

Kir in Haskell
Каким образом F представляет одновременно m a и m b?
источник

A

Aleksandr Khristenko in Haskell
map<A, B>(f: (a: A) => B, fa: HKT<F, A>): HKT<F, B>
источник

K

Kir in Haskell
Не, до и после, так сказать. F - это какой-то дескриптор для FImpl<A>?
источник

ЗП

Зигохистоморфный Пре... in Haskell
Есть же пейпер lightweight HKT
источник

AP

Aleksei (astynax) Pi... in Haskell
Это "типы с порядком чуть повыше"?
источник

YS

Yan Shkurinskiy in Haskell
"немного высоковатые"
источник

AP

Aleksei (astynax) Pi... in Haskell
Higher(er) Kinded Types
источник

t

toriningen in Haskell
это которые в fp-ts реализованы?
источник

AP

Aleksei (astynax) Pi... in Haskell
"Типа, Типы Типов"
источник

A

Aleksandr Khristenko in Haskell
Да
источник

к

кана in Haskell
F это вообще что? Вот для массива Array<number> через HKT<..., number> как выглядит?
источник

A

Aleksandr Khristenko in Haskell
Если просто, у тебя не будет Array<number> а будет HKT<Array, number>
источник

к

кана in Haskell
так это же невалидный код
источник

к

кана in Haskell
Array не применен ко всем аргументам, как он может быть сам аргументом
источник

к

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