Я экспериментирую с системой типов Haskell и хочу написать безопасную функцию добавления типов. Эта функция должна принимать двух одноэлементных свидетелей, представляющих числа, и возвращает одноэлементного свидетеля ...
Я пытаюсь использовать некоторые параметры GADT из среды выполнения, предполагая, что я использовал расширение DataKinds, чтобы позволить преобразование данных в типы. то есть имея данные Num = Zero | Succ Num data Something (...
Это работает в MSVC2017 v15.6, но сбой в MSVC2017 v15.7.2: struct Foo {с использованием T = int; }; template & lt; class DERIVED, класс WRAP & gt; struct A {с использованием T = typename WRAP :: T; }; шаблон & lt; класс ...
Я попытался ответить на свой вопрос о примерах использования расширения PolyKinds в GHC и придумал более конкретную проблему. Я пытаюсь смоделировать очередь, состоящую из двух списков, head -...
Я играю в Coq,
Мне просто нужна была функция, которая принимает список [1,2,3,2,4] и возвращает что-то вроде Sorted [1,2,3,4] - то есть удаляет плохие части, но ...
В библиотеке «Эффекты Идриса» эффекты представлены в виде ||| Этот тип параметризуется с помощью: ||| + Возвращаемый тип вычисления. ||| + Входной ресурс. ||| + Вычисления для запуска на ...
И gcc 5.0, и clang 3.6 требуют ключевое слово typename в следующем примере: template struct I {typedef int Type; }; шаблон struct A {int m; пустота ...
Я могу делать типы ранга n в Idris 0.9.12 только довольно неуклюже: tupleId: ((a: Type) - > a -> a) - > (а, б) - > (a, b) tupleId f (a, b) = (f _ a, f _ b) Мне нужны подчеркивания везде, где ...
Может ли кто-нибудь объяснить мне зависимую типизацию? У меня мало опыта работы с Haskell, Cayenne, Epigram или другими функциональными языками, поэтому чем проще термины, которые вы можете использовать, тем больше я буду признателен!
Существует учебное пособие по Idris, учебное пособие по Agda и множество других статей по стилю учебного пособия и вводный материал с бесконечными ссылками на вещи, которые еще предстоит изучить. Я ползаю в середине ...
У меня есть шаблон проектирования, в котором есть генератор объектов (MorselGenerator и его дочерние элементы), любой экземпляр которого всегда генерирует один и тот же точный тип объекта (Morsel и его дочерние элементы), но ...
После прочтения ghc 7.4. предварительные примечания к выпуску и статья о продвижении Haskell, я все еще не понимаю, что вы на самом деле делаете с продвигаемыми типами. Например, руководство GHC дает ...
Например, я хочу сделать введите MyType целых троек. Но не просто декартово произведение трех целых чисел, я хочу, чтобы тип представлял все (x, y, z) так, что x + y + z = 5 Как мне это сделать? ...
Прежде всего, я действительно не знаю, что не так с зависимыми типами и почему мы не видим их реализованными в существующих языках для практического программирования, вместо того, чтобы изобретать всевозможные уловки (...
Какие языки программирования с зависимой типизацией можно использовать для разработки реальных приложений? Вот некоторые моменты, которые я считаю важными: документация
примеры программ
стандарт ...
Я пытаюсь определить универсальное кольцо классов остатков в Scala. Кольцо классов вычетов определяется некоторым базовым кольцом (например, целыми числами) и модулем (например, двумя), который является значением из базового кольца. Оба ...