Я прочитал статью Wikipedia Экзистенциальные типы. Я заключил, что их называют экзистенциальными типами из-за экзистенциального оператора (∃). Я не уверен, какова точка его, все же. Что...
В моем проекте у меня есть следующее созвездие: черта F черта X [A & lt ;: F] def test (x: X [_]): X [_ & lt ;: F] = x У черты X есть параметр типа с верхняя граница F. Насколько я понимаю, ...
Немного более конкретный вопрос, чем вопрос переполнения стека Что такое экзистенциальный тип? В чем разница между экзистенциальными типами Scala и подстановочным символом Java, желательно с каким-то наглядным примером? ...
Я считал William Cook "На Абстракции Данных, Пересмотренной", и перечитал Ralf Laemmel "Лемма выражения", чтобы попытаться понять, как применить бывшие идеи газеты в Haskell. Так, я пытаюсь...
Так, только для забавы, я играл с типом CountedList в Haskell, с помощью чисел Peano и умных конструкторов. Безопасная с точки зрения типов голова и хвост просто кажутся действительно холодными мне. И я думаю, что достиг...
Есть ли удобный способ получить экземпляр Ord (или Eq) для сравнения любых двух значений GADT независимо от параметра типа. В GADT параметром типа является фантом, просто предназначенный для ...
При использовании экзистенциальных типов мы должны использовать синтаксис сопоставления с образцом для извлечения заданного значения. Мы не можем использовать обычные селекторы записей в качестве функций. GHC сообщает об ошибке и предлагает...
Дано кортеж с элементами типа A и другого типа, параметризованного в A: trait Writer[-A] { def write(a: A): Unit }
класс case Write[A](значение: A, писатель: Writer[A]) И сайт использования: trait Cache { ...
У меня есть общее представление о том, что такое экзистенциальная квантификация по типам и где ее можно использовать. Однако, исходя из моего опыта, есть много предостережений, которые необходимо понять, чтобы использовать ...
Оказывается, правильно использовать экзистенциальные/ранговые типы на удивление сложно, несмотря на очень простую идею, стоящую за ними. Почему необходимо оборачивать экзистенциальные типы в типы данных? Я...
Haskell Wiki хорошо объясняет, как использовать экзистенциальные типы, но я не совсем понимаю лежащую в их основе теорию. Рассмотрим этот пример экзистенциального типа: данные S = forall a. Покажите a =&...
Мне нужна карта, которая может содержать произвольные значения, если их типы относятся к одному классу типов. Мой первый наивный подход был примерно таким: type HMap = forall a . MyClass a => M.Map Int a ...
Многие статически типизированные языки обладают параметрическим полиморфизмом. Например, в C#можно определить :T Foo(T x){ return x; } На сайте вызова вы можете сделать :int y = Foo(3); Эти типы...
Например, List [T] forSome {type T} эквивалентен List [_], но верно ли это для каждого возможное использование forSome или есть случаи, когда forSome нельзя заменить эквивалентом ...
Мой проект Scala 2.9.1 сейчас выдает 176 предупреждений, все почти в точности как это: [warn] Not a simple type:
[warn] Type: _29.type#source.type forSome { type _29.type <: Ontology.this....
Контекст: я пытаюсь создать монаду ошибок, которая также отслеживает список предупреждений , примерно так: data Dangerous a = forall e w. (Error e, Show e, Show w) => Dangerous (ErrorT e (...
Итак, у меня есть класс: class C a, где reduce :: a -> Int Теперь я хочу упаковать его в тип данных: data Signal = forall a. (C a) => Signal [(Double, a)] Благодаря экзистенциальному ...
Я пытаюсь обернуть мою мозг вокруг экзистенциальных типов Haskell, и мой первый пример - это разнородный список вещей, которые можно показать: {- # LANGUAGE ExistentialQuantification # -}
data Showable = ...
Я борюсь с экзистенциальными типами в своей программе. Мне кажется, что я пытаюсь сделать что-то очень разумное, но я не могу пройти проверку типа :( У меня есть тип данных, который как бы имитирует монаду ...
У меня есть коллекция записей, распределенных по множеству типов в большом приложении Haskell, которые ссылаются друг на друга. Все задействованные типы реализуют общий класс типов. Класс типов содержит ...
Предположим, у меня есть составной тип данных - data M o = M (String, o) Теперь я может определить функцию, которая работает для ВСЕХ M независимо от o. Например - f :: M o -> M o
f (M (s, o)) = M (s ++ "!", o) ...
Редактировать: Благодаря тому, что Дерек указал на критическую часть сообщения об ошибке, я смог извлечь критическую часть еще немного, и кажется быть об экзистенциальных типах. Если я понимаю §3.2.10 ...
Я хочу использовать карту разных типов на неизвестной карте A: val: Map [Foo [A], Бар [A]] = ...
...
val foo = новый Foo [Qux]
val bar: Bar [Qux] = map (foo) Это не работает, потому что A неизвестно. Я должен ...
Мне нужно получить значение перечисления Java из строки, заданной экземпляром класса Enum. Я пробовал код, как показано ниже, но получаю ошибку компиляции "несвязанный подстановочный знак". Кажется, мне нужно что-то сделать с ...
Возможно ли в (GHC) Haskell определить экзистенциально количественно определенный новый тип? Я понимаю, что если задействованы классы типов, это невозможно сделать в реализации с передачей словаря, но для моего ...
I was trying to implement the state monad in OCaml (as an exercise). My implementation looks like this: module type MONAD_BUILDER =
sig type 'at val return:' a -> 'at val bind:' at -> ...
Я пытался использовать обновление записи для экзистенциальной записи, когда столкнулся с ошибкой. Быстрый поиск в Google привел меня к запросу функции № 2595, который показывает, что он реализован для GHC еще в версии 6.8.3. Я ...