Вопросы по теме 'parametric-polymorphism'

Scala преобразует рекурсивно ограниченный параметр типа (F-ограниченный) в член типа
Как бы я преобразовал: trait Foo[A <: Foo[A]] члену типа? То есть я хочу что-то вроде следующего: trait Foo { type A <: Foo {type A = ???} } но у меня возникают трудности, потому что имя A уже занято в уточнении типа....
456 просмотров

Построение трехуровневых глубоких типов F-Bound
У меня есть три типа F-Bound A , B и C , где B параметризуется A , а C параметризуется B (и, следовательно, также A ). Я могу создать экземпляр A и B , но когда я пытаюсь создать экземпляр C , компилятор не может определить типы....
49 просмотров

Зависимые типы/параметрический полиморфизм в Common Lisp?
Я хочу написать некоторый общий код, связанный с группами отражения, и поэтому мне нужно настроить некоторые типы, которые отражают математические структуры (векторное пространство, аффинное пространство,...). Поскольку я действительно хочу точно...
1430 просмотров

В Идрисе я могу доказать бесплатные теоремы, например единственная (итоговая) функция типа `forall t. t - ›t` это` id`?
Для достаточно полиморфных типов параметричность может однозначно определять саму функцию (см. Теоремы Вадлера бесплатно! для подробностей). Например, единственная итоговая функция с типом forall t. t -> t - это функция идентичности id ....
306 просмотров

Как преобразовать полиморфное значение в строку?
На самом деле я ищу функцию с такой подписью, как 'a -> string , которая преобразует данный полиморфный тип в строку. Я уже думал о чем-то вроде let func elem = match elem with | int -> string_of_int elem ... Надеюсь, кто-нибудь может...
102 просмотров

Приложение частичной функции Haskell с $
Я новичок в Haskell и смотрю на простой пример использования приложения-функции с $ . Это кажется простым — он берет функцию и применяет ее к значению. Так что это имеет смысл: > (+3) $ 2 5 Это также имеет смысл: > ($) (+3)...
116 просмотров

Какова связь между рангом полиморфизма и (не)предикативностью?
Какова связь между рангом полиморфизма и (не)предикативностью? Может ли полиморфизм ранга 1 быть предикативным или непредикативным? Может ли полиморфизм ранга k с k > 1 быть либо предикативным, либо непредикативным? Мои заблуждения...
383 просмотров

Реализовать трейт для базового типа (с плавающей запятой)
Я хочу работать с кольцами, поэтому у меня есть черта RingOps , и я хочу, чтобы float была ее частью. Я думаю, что float реализует каждый супертип, поэтому было бы здорово получить его, но если нет, то как это сделать? trait RingOps:...
104 просмотров