Публикации по теме 'parametric-polymorphism'


Полиморфные функции в Scala
1. Введение Полиморфная функция — очень распространенный термин в Функциональном программировании . В объектно-ориентированном программировании (ООП) также существует понятие "полиморфизма" , но оно относится к объектам и наследованию. Полиморфная функция — это функция, которая может работать с любым типом данных, который ей задан. Полиморфные функции также известны как параметрический полиморфизм . Как видите, определение очень простое: "Функция, которая принимает..

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

Пример использования полиморфизма ранга 3 (или выше)?
Я видел несколько вариантов использования полиморфизма ранга 2 (наиболее ярким примером является монада ST ), но ни один для более высокого ранга, чем это. Кто-нибудь знает о таком варианте использования?
1140 просмотров

Что такое квантификаторы типов?
Многие статически типизированные языки имеют параметрический полиморфизм. Например, в C# можно определить: T Foo<T>(T x){ return x; } На сайте вызова вы можете сделать: int y = Foo<int>(3); Эти типы также иногда...
1780 просмотров

Являются ли вялые естественные преобразования просто естественными преобразованиями без естественности?
На странице 4 Теоремы бесплатно! , Филип Вадлер говорит, что параметричность может быть выражена в терминах нестрогих естественных преобразований. Имеет ли он в виду тот факт, что параметрически полиморфные функции в языках функционального...
314 просмотров

Получение ошибки с параметрическим полиморфизмом в С#
В этой функции: public List<T> getX<T>(SPListItemCollection itemCollection, List<T> itemList, Report RO, WebpartSettings WPS, bool isFolder) { foreach (SPListItem item in itemCollection) { if...
107 просмотров
schedule 13.06.2022

разница между полиморфизмом и перегрузкой
Я нашел там много определений полиморфизма и перегрузки. Некоторые говорят, что перегрузка — это один из видов полиморфизма. В то время как некоторые люди сказали, что они не то же самое. Потому что при перегрузке будет выделена только одна...
19306 просмотров
schedule 14.12.2022

Рекурсивные алгебраические типы данных через полиморфизм в Haskell
Я пытаюсь понять определение, декодирование и кодирование рекурсивных алгебраических типов данных с учетом функциональности универсального полиморфизма. В качестве примера я попытался реализовать рекурсивный тип двоичных деревьев через data BTAlg...
246 просмотров

Многоуровневый полиморфизм в javascript, полиморфный Object.extend
Я хотел бы реализовать многоуровневое наследование, поддерживающее полиморфизм, реализуемый методом расширения, выполняемым на расширяемом объекте (а не внешней утилитой или функцией - с точки зрения расширяемого объекта). tl;dr jsfiddle здесь:...
218 просмотров

Создание действия, которое принимает параметр любого типа, производного от типа параметра (полиморфный параметр)
Я хочу создать динамическую структуру, чтобы клиент мог запрашивать сервер в веб-API. Я попытался использовать следующий код для решения моего вопроса, однако он не работает. Как я могу отправить общий тип, например <travel> , в...
1961 просмотров

Каковы мои ожидания от создания Haskell?
Заранее извиняюсь за вопрос новичка, но я изо всех сил пытался найти полезную информацию по этому поводу. Я работал над "Learn You Haskell for Great Good" и пытаюсь понять ключевое слово deriving, которое похоже на инструменты Java, но...
297 просмотров
schedule 26.06.2022

Почему forall a. а не считается подтипом Int, в то время как я могу использовать выражение типа для всех а. а где-нибудь ожидается один типа Int?
Рассмотрим следующую пару определений функций, которые проходят проверку типов: a :: forall a. a a = undefined b :: Int b = a т.е. выражение типа forall a. a может использоваться там, где ожидается выражение типа Int . Мне кажется, что...
721 просмотров

Haskell функции полиморфного типа
Возможно ли в Haskell иметь функцию, которая может принимать полиморфный тип и возвращать полиморфный тип? Например, мне нужна функция, которая принимает значение и возвращает Int, если значение имеет тип Foo , и строку, если оно имеет тип Bar ....
649 просмотров

Абстрактные типы данных против параметрического полиморфизма в Haskell
Я пытаюсь понять взаимосвязь между этими двумя понятиями. Сначала рассмотрим пример абстрактного типа данных : data Tree a = Nil | Node { left :: Tree a, value :: a, right :: Tree a }...
393 просмотров

Почему C++ не поддерживает параметрический полиморфизм?
Согласно странице википедии для параметрического полиморфизма : Некоторые реализации полиморфизма типов внешне похожи на параметрический полиморфизм, но также вводят специальные аспекты. Одним из примеров является специализация шаблонов C++....
1607 просмотров
schedule 28.01.2023

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

Как сообщить средству проверки типов, что сигнатура типа в привязке соответствует сигнатуре типа верхнего уровня?
Фон Мне нравится добавлять сигнатуры типов к моим привязкам where и let несколько раз, так как это помогает мне помнить, какими должны быть мои результаты и каковы мои входные данные. Это также помогает средству проверки типов выдавать...
61 просмотров

Подпись правильного типа для параметра типа в Haskell
У меня есть два типа данных и я хочу написать класс, который возвращает данные из этих типов данных: data D1 a = Da1 a | Db1 a data D2 a = Da2 a | Db2 a class D a where extract :: ??? a -> a instance D (D1 a) where extract (Da1 a) =...
84 просмотров

Возможно ли иметь какой-либо полиморфизм с функциональным программированием в JavaScript?
Возможно ли иметь какой-либо полиморфизм с функциональным программированием в JavaScript? Мне нравится FP, но когда я хочу использовать JS, я не могу понять, как поддерживать полиморфизм в JS, кроме как с использованием классов/прототипов....
468 просмотров

Абстрактные параметрические типы в Scala
У меня есть: trait A[B[_]] и я имею: trait Base { type AImpl <: ??? def foo: AImpl } чтобы классы, расширяющие Base, определяли A и реализовывали методы и поля. то есть: trait BB[T] trait AA extends A[BB] trait...
60 просмотров

Разница между специальным полиморфизмом и параметрическим полиморфизмом в Scala
Итак, я искал документацию об основных различиях между parametric polymorphism и adhoc-polymorphism , но у меня все еще есть некоторые сомнения. Например, такие методы, как head в Collections, явно являются параметрическим полиморфизмом,...
595 просмотров

Вопрос о параметрическом полиморфизме в OCaml
Эта полиморфная функция позволяет нам менять порядок аргументов произвольной каррированной функции: # let flip f x y = f y x ;; val flip : ('a -> 'b -> 'c) -> 'b -> 'a -> 'c То есть flip принимает функцию типа 'a ->' b ->...
107 просмотров
schedule 21.05.2022