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

Что означает *** CPSZ: в журнале сборки Кабала при строительстве Идриса?
В настоящее время я строю Идрис через cabal install idris . В ответ на вывод: Redirecting build log to {handle:/home/me/.cabal/logs/idris-0.9.14.3.log} Я решил отслеживать сборку с помощью tail -f /home/me/.cabal/logs/idris-0.9.14.3.log ....
110 просмотров
schedule 13.05.2022

Векторы Идриса против связанных списков
Проводит ли Идрис какую-либо оптимизацию под капотом векторов? Потому что, судя по всему, вектор Идриса - это просто связанный список с известным размером (известным во время компиляции). Фактически, в целом кажется, что вы могли бы выразить...
1289 просмотров

Экземпляр VerifiedMonad для монады ошибки
Я пытаюсь завершить доказательство monadLeftIdentity для следующего типа данных: data ErrorM : (a : Type) -> Type where AllGood : a -> ErrorM a Error : String -> ErrorM a instance Monad ErrorM where (AllGood x) >>= f = f x...
135 просмотров
schedule 28.08.2022

Сделать один аргумент больше другого в Idris
Я пытаюсь написать функцию mSmallest , которая принимает два натуральных числа, n и m в качестве входных данных, и создает вектор. Выходной вектор содержит m наименьших членов конечного набора с n элементами. Например, предполагается, что...
267 просмотров
schedule 27.07.2023

Примитивные операции в доказательствах
Для изучения зависимых типов я переписываю свою старую игру на Haskell в Idris. В настоящее время «движок» игры использует встроенные целочисленные типы, такие как Word8 . Я хотел бы доказать некоторые леммы, касающиеся числовых свойств этих чисел...
193 просмотров

Действительно ли Идрис строго оценивается?
Исходя из Haskell, я читал историю Идриса о лени (нестрогости). Я просмотрела последние примечания к выпуску и нашла код , похожий на следующий myIf : (b : Bool) -> (t : Lazy a) -> (e : Lazy a) -> a myIf True t e = t myIf False t e = e...
838 просмотров
schedule 12.12.2023

Символ Idris FFI не найден
В последнее время я возился с Idris и решил попробовать поиграть с его Network.Socket библиотекой. Я запустил REPL, импортировал модуль и создал сокет с помощью команды socket . При попытке выполнить операцию IO я столкнулся со следующей...
179 просмотров
schedule 16.08.2022

Идрис - Невозможно оценить приложение функции в типе
У меня проблема, когда у меня есть значение типа fun a , где fun является функцией, а a значением, которое не вычисляется при проверке типа и выдает ошибку объединения, когда я заставляю его быть результатом этой функции применение....
223 просмотров

Простой преобразователь температуры с зависимым типом в Haskell, можно ли сделать этот код короче?
Функция convert ниже имеет сигнатуру типа: SUnit fromUnit-> SUnit toUnit ->Value fromUnit -> Value toUnit , который имеет избыточность , поскольку одна и та же информация может быть выражена с помощью: Value fromUnit ->...
204 просмотров
schedule 08.06.2024

Есть ли функция по модулю в idris?
В Haskell есть функции mod и rem . Существуют ли аналогичные функции в Idris, особенно определенные для Nat ?
570 просмотров
schedule 19.05.2023

Автоматический неявный аргумент перестает работать, когда типу присваивается имя
При написании этого ответа я заметил, что пока это работает как положено: onlyModBy5 : (n : Nat) -> {auto prf : n `modNat` 5 = 0} -> Nat onlyModBy5 n = n foo : Nat foo = onlyModBy5 25 но как только я даю имя свойству, оно перестает...
43 просмотров
schedule 18.04.2023

Странная синтаксическая ошибка
data A = B | C Int implementation Semigroup A where B <+> x = x x <+> B = x C m <+> C n = C (m + n) дает мне синтаксическую ошибку ./Nodes/Test.idr:3:1: error: expected: ";", "|", declaration, end of input...
94 просмотров
schedule 09.12.2023

Ограничение входных аргументов функцией
Допустим, я хочу определить функцию Фибоначчи как следующую функцию: fibo : Int -> Int fibo 1 = 1 fibo 2 = 2 fibo n = fibo (n-1) + fibo (n-2) Эта функция, очевидно, не является полной, поскольку она не определена для целых чисел ниже 1,...
121 просмотров
schedule 17.04.2023

Как закодировать возможные переходы состояний в типе?
Я пытаюсь воспроизвести в Haskell этот фрагмент кода Idris, который обеспечивает правильную последовательность действий через типы: data DoorState = DoorClosed | DoorOpen data DoorCmd : Type -> DoorState -> DoorState...
358 просмотров
schedule 27.09.2022

Где полезен оператор Idris ==?
Как новичок в программировании, управляемом типами, мне интересно использовать оператор == . Примеры демонстрируют, что недостаточно доказать равенство между двумя значениями определенного типа, и для конкретных типов данных вводятся специальные...
102 просмотров
schedule 15.06.2023

Идрис: Неявные параметры в записях
Когда я пытаюсь скомпилировать этот пример record R where f: () -> {t: Type} -> t Я получаю эту ошибку: Type mismatch between () -> t1 (Type of f) and () -> t (Expected type) Specifically: Type...
159 просмотров
schedule 13.01.2024

Отслеживание состояния при написании доказательств равенства, которые представляют собой длинные цепочки транзитивно связанных шагов
Я писал в Идрисе следующее доказательство: n : Nat n = S (k + k) lemma: n * n = ((k * n) + k) + (1 + (((k * n) + k) + 0)) lemma = sym $ rewrite plusZeroRightNeutral ((k * n) + k) in rewrite plusAssociative ((k * n) + k) 1 ((k *...
103 просмотров
schedule 27.08.2022

Функция работает только при переворачивании
Почему ошибка? import Data.Vect import Data.Vect.Quantifiers get : (i : Fin n) -> All (flip Vect t) ls -> Vect (index i ls) t get FZ (y :: z) = y get (FS y) (z :: w) = get y w nproject : Vect l (n : _ ** Fin (index n ls)) -> All (flip...
57 просмотров
schedule 14.04.2024

жирная стрела в Идрисе
Я надеюсь, что этот вопрос уместен для этого сайта, он просто о выборе конкретного синтаксиса в Idris по сравнению с Haskell, поскольку оба они очень похожи. Думаю, это не так важно, но мне очень любопытно. Идрис использует => в некоторых...
178 просмотров
schedule 15.01.2024

Lightyear requireFailure не выполняет откат
Я хочу разобрать серию любых 4 символов. Однако эти символы не должны формировать определенную строку ( "bb" в примере ниже). Итак, "aaaa" и "abcd" в порядке, но ни "bbcd" , ни "abbc" не должны совпадать. Я составил следующий парсер:...
64 просмотров
schedule 18.04.2023