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

Как работает List.max‹'T›?
Из документов MSDN подпись List.max : List.max : 'T list -> 'T (requires comparison) Мои вопросы: Как компилятор статически проверяет, что 'T поддерживает операцию сравнения? Является ли requires ключевым словом для указания...
301 просмотров

Параметрический полиморфизм и полиморфизм подтипов F#
В чем разница (если она есть) между этими двумя подписями типа F#? UseTheStream<'a when 'a :> Stream> : 'a -> unit и UseTheStream : (stream : Stream) -> unit Означают ли они одно и то же в данном случае? msdn...
1463 просмотров

Выражение параметрического полиморфизма и функций высшего порядка в диаграмме классов UML
Можно ли выразить параметрический полиморфизм (общие типы в C#) или функции более высокого порядка в диаграммах классов UML? Если да, то как это делается? Если нет, существуют ли другие типы диаграмм, более подходящие для описания программных...
259 просмотров

Scalacheck/Scalatest с параметрическими типами
Я хочу протестировать общий стек с помощью scalatest и scalacheck. Пока у меня это: "Stack" should "pop the last value pushed" in { check(doPushPop(element)) } def doPushPop[T](element : T) : Boolean = { val stack = new Stack[T]...
302 просмотров

Почему `peek` с полиморфным Ptr возвращает GHC.Prim.Any при использовании с привязкой?
Используя привязки GNU Science Library низкого уровня Bindings.Gsl.RandomNumberGeneration , я запускаю в это странное поведение типа в GHCi, где привязка изменяет возвращаемый тип с peek на GHC.Prim.Any . Я пытаюсь понять, почему, так как я не...
121 просмотров

Могу ли я в Scala динамически указать параметр типа параметрического типа?
Я пишу программу, в которой пользователь указывает путь к классу в командной строке. Я превращаю его в объект Class с помощью: val clazz = Class.forName(args([0])) У меня есть параметрический класс MyParametric[T] с одним параметром...
151 просмотров
schedule 31.05.2022

Являются ли типы высшего порядка * действительно * типами в Haskell? Или они просто обозначают коллекции * конкретных * типов и ничего более?
Парамаметрически полиморфные функции Рассмотрим следующую функцию: f :: a -> Int f x = (1 :: Int) Мы могли бы сказать, что тип f - это a -> Int , и, следовательно, f имеет "полиморфный" тип. Что из следующего является...
3229 просмотров

Могу ли я проверить, имеет ли данная сигнатура типа функции потенциальную реализацию?
В случае явных аннотаций типа Haskell проверяет, является ли выведенный тип хотя бы таким же полиморфным, как и его сигнатура, или, другими словами, является ли выведенный тип подтипом явного. Следовательно, следующие функции плохо типизированы:...
185 просмотров

Заблуждение о классах типов и назначении переменных в Haskell
Очень плохо знаком с Haskell и пытаюсь понять, как взаимодействуют классы типов и переменные. Первое, с чем я поиграл, было: i :: a; i = 1 Я ожидал, что, поскольку я был напечатан как можно более обобщенно, я мог присвоить ему абсолютно...
147 просмотров

Общее программирование на Прологе
Насколько мне известно, в Прологе нет встроенных механизмов для универсального программирования . Можно имитировать дженерики с помощью унификации, но для этого требуется проверка типов во время выполнения: :- initialization(main). :-...
140 просмотров

Почему вы не можете обобщить параметрические классы?
Когда вы определяете параметрические классы, вы можете использовать только фиксированное количество параметров. class Container<T> { ... } Однако, если вы хотите создать, скажем, карту с несколькими значениями. Вы должны...
44 просмотров

Инструмент или метод разрешения параметров универсального типа Haskell
Давайте посмотрим на типы этих функций, например: :t traverse traverse :: (Applicative f, Traversable t) => (a -> f b) -> t a -> f (t b) :t id id :: a -> a У них нет конкретных типов, но есть параметры универсального типа :...
69 просмотров

Когда и зачем использовать AsRef‹T› вместо &T
AsRef документация пишет Используется для дешевого преобразования ссылки на ссылку. Я понимаю часть reference-to-reference что означает cheap ? Надеюсь, это никак не связано со сложностью теоретической (большой о. и т.п.) дешевизны....
763 просмотров

Как реализовать структуру, которая принимает трейт MyTrait‹A›?
Я определил черту следующим образом: trait Readable<E> { fn read_u8(&mut self) -> Result<u8, E>; fn read_u16be(&mut self) -> Result<u16, E>; } Идея состоит в том, чтобы реализовать его с разными...
59 просмотров

Как сделать конструкторы, которые создают значения по умолчанию для параметрически типизированных полей
Для типа с параметрически типизированными полями, такими как: struct Point{T <: AbstractFloat} x::T y::T end Как создать внешний конструктор, который создает значения по умолчанию с нужными типами? Например, я хочу, чтобы Point()...
45 просмотров