Вопросы по теме 'type-constructor'

OCaml — конструктор несвязанных типов
Я новичок в OCaml и не понимаю систему модулей в Ocaml. module type Queue = sig type element type queue val enq: queue * element -> queue end module StringQ : Queue with type element = string =...
2312 просмотров
schedule 01.05.2022

Класс случая Scala: создание экземпляров для случаев конструктора типов?
Я хочу использовать общую функцию, которая возвращает «значение по умолчанию» для данного типа. Я реализовал это с помощью следующей конструкции класса case: case class DefaultOp[T](op: () => T) implicit val defaultString =...
60 просмотров
schedule 22.05.2023

Понимание типовой проекции
Взято из typelevel/kind-projector , в чем разница между: // partially-applied type named "IntOrA" type IntOrA[A] = Either[Int, A] и // type projection implementing the same type anonymously (without a name). ({type L[A] = Either[Int,...
112 просмотров

Рекурсивный тип Scala и реализация конструктора типов
У меня есть ситуация, когда мне нужен метод, который может принимать типы: Array[Int] Array[Array[Int]] Array[Array[Array[Int]]] Array[Array[Array[Array[Int]]]] etc... давайте назовем этот тип RAI для «рекурсивного массива целых чисел»...
513 просмотров

Способна ли scala выводить члены абстрактного типа конструктора типов?
Я пытаюсь извлечь члены абстрактного типа из неявных параметров (а-ля Shapeless), например trait F[T] { type Out } object F { type Aux[T, out] = F[T] { type Out = out } } def glhf[t, out](implicit f: F.Aux[t, out]): out = ??? Это...
242 просмотров

Тип данных с ограничением типа в Wadler - статья Суть функционального программирования,
В статье Фила Уодлера «Сущность функционального программирования» Уодлер описывает применение монад с помощью простой программы-интерпретатора. Программа показана ниже: Терм — это переменная, константа, сумма, лямбда-выражение или приложение....
113 просмотров

Какая спецификация GHC/Haskell говорит, что конструкторы свободных типов соответствуют самым правым типам?
Недавно меня застали врасплох, когда я попытался передать конструктор для типа типа * -> * -> * с одним привязанным типом var функции, ожидающей конструктор для * -> * . Конкретно, это было похоже на передачу (\x -> (x, 42)) ::...
54 просмотров