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

Монада состояния в OCaml
Я пытался реализовать монаду состояния в OCaml (в качестве упражнения). Моя реализация выглядит так: module type MONAD_BUILDER = sig type 'a t val return : 'a -> 'a t val bind : 'a t -> ('a -> 'b t) -> 'b t end;; module...
2107 просмотров

Есть ли способ определить экзистенциально квантифицированный новый тип в GHC Haskell?
Возможно ли в (GHC) Haskell определить экзистенциально-количественный новый тип? Я понимаю, что если задействованы классы типов, это невозможно сделать в реализации с передачей словаря, но для моих целей классы типов не нужны. Что я действительно...
951 просмотров

Действительно общая функция в Haskell
Предположим, у меня есть составной тип данных - data M o = M (String,o) Теперь я могу определить функцию, которая работает для ВСЕХ M независимо от o . Например - f :: M o -> M o f (M (s,o)) = M (s++"!", o) Однако f на самом...
351 просмотров
schedule 16.06.2022

Может кто-нибудь объяснить, что здесь происходит? экзистенциальные универсальные квантификации
Я должен запрограммировать (С++) и найти истинное значение следующего. Я не уверен в том, что именно это означает. AxAy(C(x, y) -> ((Aw(C(x, w) -> w = y) ^ (Az(C(z, y) -> z = x)) обратите внимание, что -> — это импликация, C(x, y) —...
74 просмотров
schedule 24.11.2023

Ограничение типов более высокого типа для аргумента и типа результата Function1
Учитывая некоторые типы более высокого порядка: trait Impl [S] trait Event[S, A] trait Key [A] Как я могу переписать следующее определение: def declare[A](fun: Impl[_] => Event[_, A]): Key[A] = ??? чтобы ограничить аргумент fun...
178 просмотров

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

Какова теоретическая основа экзистенциальных типов?
Haskell Wiki хорошо объясняет, как использовать экзистенциальные типы, но я не совсем разбирайтесь в теории, стоящей за ними. Рассмотрим этот пример экзистенциального типа: data S = forall a. Show a => S a -- (1) чтобы...
4221 просмотров

Реализация булевой функции Haskell
Я пытаюсь решить следующую проблему: учитывая, что все селекторы (e^i_n) и некоторые логические функции ( {f_1, f_2, f_n} ) перечисляют все функции n аргументов в закрытии (в [f_1,f_2,..f_n]). Итак, я реализую BooleanFunctionClass и...
622 просмотров
schedule 27.07.2023

Экзистенциальные типы. Написание экземпляра класса для гетерогенной карты
Используя следующие определения типов и классов, я не понимаю, почему я получаю ошибку при создании instance ниже. Мне нужно, чтобы MyMap содержал карту разнородных значений. {-# LANGUAGE ExistentialQuantification #-} module...
289 просмотров
schedule 11.04.2023

Как выразить экзистенциальные типы, используя полиморфизм типа более высокого ранга (ранг-N)?
Мы привыкли к универсальным количественным типам для полиморфных функций. Экзистенциально-квантованные типы используются значительно реже. Как мы можем выразить экзистенциально квантифицированные типы, используя кванторы универсального типа?
1644 просмотров

Экзистенциальные и универсально квантифицированные типы в Haskell
В чем именно разница между ними? Я думаю, что понимаю, как работают экзистенциальные типы, они похожи на наличие базового класса в ООП без возможности приведения вниз. Чем отличаются универсальные типы?
9641 просмотров
schedule 29.08.2023

почему указанная эквивалентность между подстановочными знаками и экзистенциальными типами не наблюдается в REPL
Согласно языку программирования Java 4-го изд. раздел 15.7.1 «Типовые токены»: getClass получает особую обработку компилятором: если getClass вызывается для ссылки со статическим типом T , то компилятор обрабатывает возвращаемый тип...
859 просмотров

Типовое приведение GADT
Допустим, я пишу DSL и хочу иметь поддержку как поддержки фантомных типов, так и плохо типизированных выражений. Мои типы значений могут быть {-# LANGUAGE GADTs, DataKinds #-} data Ty = Num | Bool deriving (Typeable) data Val a where VNum ::...
287 просмотров
schedule 26.02.2024

Понижение функций до встроенного языка
Как я могу понизить функцию Haskell до встроенного языка максимально безопасным способом. В частности, предположим, что у меня есть тип значения, например data Type t where Num :: Type Int Bool :: Type Bool data Ty = TNum | TBool deriving...
140 просмотров
schedule 05.03.2023

Экзистенциальные типы в Scala
Немного сбивает с толку экзистенциальные типы. Это работает для меня: def valueOf(c: Class[_], name: String) { type C = Class[T] forSome {type T <: Enum[T]} Enum.valueOf(c.asInstanceOf[C], name) } но это не так: def valueOf(c:...
539 просмотров
schedule 09.03.2023

Как описать и исправить эту ошибку несоответствия типа Scala?
Ниже приведен конкретный пример ситуации, с которой я иногда сталкиваюсь с параметризованными типами. В принципе, есть параметры типа, которые, как я знаю, совместимы, но я не знаю, как доказать это для некоторых частей кода. Я пишу маршрутизатор...
2232 просмотров

Разрыв с экзистенциальным типом и функцией высшего порядка
Используя некоторую структуру: object Foo { trait Bar[B] } trait Foo[A, B, F <: Foo[A, B, F]] { def baz(fun: A => Foo.Bar[B] => Unit): Unit } ...почему экзистенциальные типы вызывают проблемы: def test[A, F <: Foo[A, _,...
107 просмотров
schedule 01.07.2023

Как создать подстановочный знак в макросе Scala?
Я не могу понять, как программно создавать экзистенциальные типы в макросах Scala. Например, предположим, что у меня есть ClassSymbol , представляющий класс C[T] с одним параметром типа. Теперь, как мне программно создать тип C[_ <:...
211 просмотров
schedule 12.09.2022

Запись в HBase в задании Spark: загадка с экзистенциальными типами
Я пытаюсь написать задание Spark, которое должно поместить свой вывод в HBase. Насколько я могу судить, правильный способ сделать это — использовать метод saveAsHadoopDataset на org.apache.spark.rdd.PairRDDFunctions — для этого требуется, чтобы...
5999 просмотров

Haskell: экзистенциальные типы и ввод-вывод
Отправлено на Code Review SE Пытаясь понять экзистенциальные типы в Haskell, я решил реализовать векторный тип данных фиксированной длины на основе целых чисел. Я использую ghc 7.8.3. В частности, я хотел написать программу, которая...
125 просмотров
schedule 26.12.2022