Публикации по теме 'idris'


Действительно хорошая статья! 😻
Действительно хорошая статья! 😻 Я только утверждаю, что Either придерживается либо левого, либо правого, но не обоих одновременно, так что Either, верно? 😉 По крайней мере, с точки зрения Haskell / Idris это так - Either - это тип данных, который имеет два однопараметрических конструктора Left и Right. Что касается Typescript ... Я не большой поклонник, хотя мне приходится много с ним работать. И ИМХО TS сильно нуждается в действительно хорошем выводе типа (иногда нужно..

Вопросы по теме 'idris'

Зависимо типизированный printf в Idris
Я пытаюсь перевести на Идрис пример из Cayenne — языка с зависимыми типами бумага . Вот что у меня есть до сих пор: PrintfType : (List Char) -> Type PrintfType Nil = String PrintfType ('%' :: 'd' :: cs) = Int ->...
1095 просмотров
schedule 18.08.2022

Я не могу доказать (n - 0) = n с Идрисом
Я пытаюсь доказать, что, на мой взгляд, является разумной теоремой: theorem1 : (n : Nat) -> (m : Nat) -> (n + (m - n)) = m Доказательство по индукции доходит до того, что мне нужно это доказать: lemma1 : (n : Nat) -> (n - 0) = n...
2067 просмотров
schedule 20.03.2023

Разница между параметрами типа и индексами?
Я новичок в зависимых типах, и меня смущает разница между ними. Кажется, люди обычно говорят, что тип параметризуется другим типом и индексируется некоторым значением . Но разве нет различия между типами и терминами в языке с зависимой...
3134 просмотров
schedule 26.09.2022

Синтаксическая ошибка при использовании представлений
У меня есть следующий код (в основном сгенерированный автоматически, играя с idris-mode в emacs): module Main data Parity : Nat -> Type where even : (n : Nat) -> Parity (n + n) odd : (n : Nat) -> Parity (S (n + n)) parity : (n :...
83 просмотров
schedule 30.10.2022

Идрис: заставить векторные суммы быть равными
Я пытаюсь изучить Идрис, перестраивая (более простым способом) некоторые вещи, которые мы недавно делали на работе. Я хотел бы иметь тип данных, который моделирует главную книгу с вектором кредитов и вектором дебетов. Я зашел так далеко: data...
125 просмотров
schedule 10.05.2023

Квантификатор Forall и комплексные логические предложения в Idris
Я новичок в зависимых типах и, имея опыт работы с Haskell, медленно изучаю Idris. В качестве упражнения я хочу написать кодировку Хаффмана. В настоящее время я пытаюсь написать доказательство того, что «сглаживание» дерева кода дает префиксный код,...
409 просмотров
schedule 15.07.2022

Неразрешимая метапеременная для функции, у которой нет обитаемых аргументов
Я получаю нерешенную метапеременную для foo в приведенном ниже коде: namespace Funs data Funs : Type -> Type where Nil : Funs a (::) : {b : Type} -> (a -> List b) -> Funs (List a) -> Funs (List a) data FunPtr : Funs a...
62 просмотров
schedule 11.08.2023

Есть ли поддержка регулярных выражений в Idris?
Я не вижу регулярного выражения в документации Idris, поддерживается ли оно каким-либо (предпочтительно переносимым) способом? Или планируется?
374 просмотров
schedule 18.10.2022

Как я могу организовать сопоставление с образцом в зависимом представлении?
Я написал несколько простых типов для просмотра значений Vect : data SnocVect : Vect n a -> Type where SnocNil : SnocVect [] Snoc : (xs : Vect n a) -> (x : a) -> SnocVect (xs ++ [x]) data Split : (m : Nat) -> Vect n a -> Type...
203 просмотров
schedule 22.12.2022

Как пронумеровать элементы списка по `Fin`s за линейное время?
Мы можем перечислить элементы списка следующим образом: -- enumerate-ℕ = zip [0..] enumerate-ℕ : ∀ {α} {A : Set α} -> List A -> List (ℕ × A) enumerate-ℕ = go 0 where go : ∀ {α} {A : Set α} -> ℕ -> List A -> List (ℕ × A) go n []...
517 просмотров

Зависимо типизированная карта — не ошибетесь?
Предположим, я определяю свой собственный тип списка. data MyVec : Nat -> Type -> Type where MyNil : MyVec Z a (::) : a -> MyVec k a -> MyVec (S k) a И функция myMap , выполняющая роль fmap для MyVec : myMap :...
90 просмотров
schedule 06.08.2023

Общий сумматор от Idris до Scala?
Разработка на основе типов с помощью Idris представляет следующий общий подход к суммированию: AdderType : (numArgs : Nat) -> Type AdderType Z = Int AdderType (S k) = (next : Int) -> AdderType k adder : (n : Nat) -> (acc : Int)...
333 просмотров
schedule 31.07.2023

Используете rewrite для моего собственного равенства?
У меня есть следующее определение равенства: data Equal : x -> y -> Type where Reflexive : Equal a a Когда я хочу использовать синтаксис rewrite , мне нужно что-то типа (a = b) , поэтому я создал: makeEquitable : Equal x y...
118 просмотров
schedule 03.11.2022

Тип данных, охватывающий два типа суммы?
Учитывая эти 2 типа суммы: data Foo = A Int | B String data Bar = C Int | D String Я хотел бы определить функцию, которая возвращает Either (Foo or Bar) String . Итак, я попытался сделать: data Higher = Foo | Bar Но не удалось...
208 просмотров
schedule 25.02.2023

Ограничение аргумента функции в интерфейсе
Каков синтаксис для ограничения аргумента функции в интерфейсе, который принимает функцию? Я попытался: interface Num a => Color (f : a -> Type) where defs... Но там написано Name a is not bound in interface...
176 просмотров
schedule 03.01.2023

Определение экземпляра функтора для тензорного типа (Идрис)
Недавно я изучал Идрис и решил попробовать написать простую тензорную библиотеку. Я начал с определения типа. data Tensor : Vect n Nat -> Type -> Type Scalar : a -> Tensor [] a Dimension : Vect n (Tensor d a) -> Tensor (n::d) a...
162 просмотров
schedule 28.07.2022

Вычисление нетривиального типа Идриса для тензорной индексации
Я возился с простой тензорной библиотекой, в которой я определил следующий тип. data Tensor : Vect n Nat -> Type -> Type where Scalar : a -> Tensor [] a Dimension : Vect n (Tensor d a) -> Tensor (n :: d) a Векторный параметр...
231 просмотров
schedule 25.06.2023

Можно ли создать представление общих АТД на уровне типов?
Используя кодировку Черча, можно представить любой произвольный алгебраический тип данных без использования встроенной системы АТД. Например, Nat можно представить (пример в Идрисе) как: -- Original type data Nat : Type where natSucc : Nat...
231 просмотров

Равенство значений не распространяется на типы в зависимости от этих значений; я что-то упускаю?
Я пытаюсь реализовать как можно больше System F (полиморфное лямбда-исчисление) в Idris. Теперь я столкнулся с проблемой, которую хочу продемонстрировать на примере: data Foo = Bar Nat Eq Foo where (Bar _) == (Bar _) = True data Baz: Foo ->...
119 просмотров
schedule 13.08.2022

Идрис Дек против Может быть
Какие вещи можно выразить с помощью Dec , а не с помощью Maybe в Идрисе ? Или другими словами: когда следует выбирать Dec и когда Maybe ?
364 просмотров