Публикации по теме 'parametric-polymorphism'
Полиморфные функции в Scala
1. Введение
Полиморфная функция — очень распространенный термин в Функциональном программировании .
В объектно-ориентированном программировании (ООП) также существует понятие "полиморфизма" , но оно относится к объектам и наследованию.
Полиморфная функция — это функция, которая может работать с любым типом данных, который ей задан. Полиморфные функции также известны как параметрический полиморфизм .
Как видите, определение очень простое: "Функция, которая принимает..
Вопросы по теме 'parametric-polymorphism'
Пример использования полиморфизма ранга 3 (или выше)?
Я видел несколько вариантов использования полиморфизма ранга 2 (наиболее ярким примером является монада ST ), но ни один для более высокого ранга, чем это. Кто-нибудь знает о таком варианте использования?
1140 просмотров
schedule
30.12.2021
Что такое квантификаторы типов?
Многие статически типизированные языки имеют параметрический полиморфизм. Например, в C# можно определить:
T Foo<T>(T x){ return x; }
На сайте вызова вы можете сделать:
int y = Foo<int>(3);
Эти типы также иногда...
1780 просмотров
schedule
18.04.2022
Являются ли вялые естественные преобразования просто естественными преобразованиями без естественности?
На странице 4 Теоремы бесплатно! , Филип Вадлер говорит, что параметричность может быть выражена в терминах нестрогих естественных преобразований. Имеет ли он в виду тот факт, что параметрически полиморфные функции в языках функционального...
314 просмотров
schedule
01.02.2023
Получение ошибки с параметрическим полиморфизмом в С#
В этой функции:
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 просмотров
schedule
24.02.2024
Многоуровневый полиморфизм в javascript, полиморфный Object.extend
Я хотел бы реализовать многоуровневое наследование, поддерживающее полиморфизм, реализуемый методом расширения, выполняемым на расширяемом объекте (а не внешней утилитой или функцией - с точки зрения расширяемого объекта).
tl;dr jsfiddle здесь:...
218 просмотров
schedule
02.11.2022
Создание действия, которое принимает параметр любого типа, производного от типа параметра (полиморфный параметр)
Я хочу создать динамическую структуру, чтобы клиент мог запрашивать сервер в веб-API. Я попытался использовать следующий код для решения моего вопроса, однако он не работает.
Как я могу отправить общий тип, например <travel> , в...
1961 просмотров
schedule
12.02.2024
Каковы мои ожидания от создания 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 просмотров
schedule
02.04.2023
Haskell функции полиморфного типа
Возможно ли в Haskell иметь функцию, которая может принимать полиморфный тип и возвращать полиморфный тип?
Например, мне нужна функция, которая принимает значение и возвращает Int, если значение имеет тип Foo , и строку, если оно имеет тип Bar ....
649 просмотров
schedule
24.02.2022
Абстрактные типы данных против параметрического полиморфизма в Haskell
Я пытаюсь понять взаимосвязь между этими двумя понятиями.
Сначала рассмотрим пример абстрактного типа данных :
data Tree a = Nil
| Node { left :: Tree a,
value :: a,
right :: Tree a }...
393 просмотров
schedule
07.02.2024
Почему C++ не поддерживает параметрический полиморфизм?
Согласно странице википедии для параметрического полиморфизма :
Некоторые реализации полиморфизма типов внешне похожи на параметрический полиморфизм, но также вводят специальные аспекты. Одним из примеров является специализация шаблонов C++....
1607 просмотров
schedule
28.01.2023
хороший способ конвертировать специальные полиморфные функции в параметрические полиморфные.
Мне интересно, есть ли общие способы преобразования между специальными полиморфными функциями и параметрическими полиморфными функциями. Другими словами, учитывая специальную полиморфную функцию, как реализовать ее параметрический аналог? а как...
315 просмотров
schedule
03.07.2022
Как сообщить средству проверки типов, что сигнатура типа в привязке соответствует сигнатуре типа верхнего уровня?
Фон
Мне нравится добавлять сигнатуры типов к моим привязкам where и let несколько раз, так как это помогает мне помнить, какими должны быть мои результаты и каковы мои входные данные. Это также помогает средству проверки типов выдавать...
61 просмотров
schedule
18.06.2023
Подпись правильного типа для параметра типа в 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 просмотров
schedule
13.08.2023
Возможно ли иметь какой-либо полиморфизм с функциональным программированием в JavaScript?
Возможно ли иметь какой-либо полиморфизм с функциональным программированием в JavaScript?
Мне нравится FP, но когда я хочу использовать JS, я не могу понять, как поддерживать полиморфизм в JS, кроме как с использованием классов/прототипов....
468 просмотров
schedule
20.10.2022
Абстрактные параметрические типы в Scala
У меня есть:
trait A[B[_]]
и я имею:
trait Base {
type AImpl <: ???
def foo: AImpl
}
чтобы классы, расширяющие Base, определяли A и реализовывали методы и поля. то есть:
trait BB[T]
trait AA extends A[BB]
trait...
60 просмотров
schedule
03.03.2023
Разница между специальным полиморфизмом и параметрическим полиморфизмом в Scala
Итак, я искал документацию об основных различиях между parametric polymorphism и adhoc-polymorphism , но у меня все еще есть некоторые сомнения.
Например, такие методы, как head в Collections, явно являются параметрическим полиморфизмом,...
595 просмотров
schedule
21.11.2022
Вопрос о параметрическом полиморфизме в 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