Resultados da pesquisa a pedido "idris"

1 a resposta

Provas de nível de tipo aberto em Haskell / Idris

Em Idris / Haskell, é possível provar propriedades dos dados anotando os tipos e usando os construtores GADT, como no Vect, no entanto, isso requer a codificação da propriedade no tipo (por exemplo, um Vect precisa ser um tipo separado de ...

1 a resposta

Qual é uma boa maneira de representar grupos livres?

É fácil representar magmas livres (árvores de folhas binárias), semigrupos gratuitos (listas não vazias) e monoides livres (listas), e não é difícil provar que eles realmente são o que afirmam ser. Mas grupos livres parecem muito ...

1 a resposta

Então: qual é o objetivo?

Qual é o objetivo pretendido doSo [https://github.com/idris-lang/Idris-dev/blob/master/libs/base/Data/So.idr#L14] tipo? Transliterando para o Agda: data So : Bool → Set where oh : So trueSo eleva uma proposição booleana até uma proposição ...

1 a resposta

Como enumerar os elementos de uma lista por `Fin`s em tempo linear?

Podemos enumerar os elementos de uma lista como esta: -- enumerate-ℕ = zip [0..] enumerate-ℕ : ∀ {α} {A : Set α} -> List A -> List (ℕ × A) enumerate-ℕ = go 0 where go : ∀ {α} {A : Set α} -> ℕ -> List A -> List (ℕ × A) go n [] = [] go n (x ∷ xs) ...

1 a resposta

O que são universos cumulativos e `*: *`?

Na Agda, háSet n. Como eu entendo,Set n estende a hierarquia de tipo de valor no estilo Haskell para níveis infinitos. Isso é,Set 0 é o universo dos tipos normais,Set 1 é o universo de tipos normais,Set 2 é o universo de tipos normais, etc. Por ...

1 a resposta

(xs: Vect n elem) -> Vect (n * 2) elem

O livroDesenvolvimento orientado a tipo com Idris [https://www.manning.com/books/type-driven-development-with-idris]apresenta este exercício: Defina um método possível que se ajuste à assinatura: two : (xs : Vect n elem) -> Vect (n * 2) ...

1 a resposta

Idris: É possível reescrever todas as funções usando "with" para usar "case" em vez de "with"? Caso contrário, você poderia dar um exemplo contrário?

No Idris, é possível reescrever todas as funções usando "com [http://docs.idris-lang.org/en/latest/tutorial/views.html]"usar" caso "em vez de" com "? Caso contrário, você poderia dar um exemplo contrário?

1 a resposta

Compreendendo a assinatura `k: Nat ** 5 * k = n`

A seguinte função compila: onlyModByFive : (n : Nat) -> (k : Nat ** 5 * k = n) -> Nat onlyModByFive n k = 100Mas o que fazk representar com a suaNat ** 5 * k = n sintaxe? Além disso, como posso chamá-lo? Aqui está o que eu tentei, mas não ...

1 a resposta

Função para determinar se Nat é divisível por 5 no tempo de compilação

UsandoCacto [https://stackoverflow.com/users/477476/cactus]é útilresponda [https://stackoverflow.com/a/36465477/409976], Tentei escrever uma função que, dada umaNat, retornará issoNat se é divisível por5. onlyModBy5Helper : (n : Nat) -> (k : Nat ...

1 a resposta

Função auxiliar para determinar se Nat `mod` 5 == 0

Xash [https://stackoverflow.com/users/5786950/xash]me forneceu uma resposta útil sobreFunção para determinar se Nat é divisível por 5 no tempo de ...