Tag: IDRIS
¿Hay alguna diferencia entre foo: {len : _} -> Int -> Vect len Int y foo: Int -> {len : _} -> Vect len Int y similar para los constructores de datos, los constructores de tipos, etc.? A veces encuentro que mi código se compila con implícitos en una posición . . . Read more
Quiero devolver un arreglo de rango arbitrario de C/C++ a Idris. He escrito el arreglo de C++ como un void* y, en consecuencia, tengo un AnyPtr en Idris. En Idris, he definido este tipo de Array como un Vect anidado: Shape : {0 rank: Nat} -> Type Shape = Vect . . . Read more
cong y injective te permiten aplicar y deshacer funciones en igualdades: cong : (f : a -> b) -> x = y -> f x = f y injective : Injective f => f x = f y -> x = y Ambas fallan para vectores indexados de diferentes longitudes, . . . Read more
Estoy llamando a C++ desde Idris. Funciona bien, en su mayoría, pero aunque puedo usar cadenas cortas sin problemas, las cadenas largas se deforman. Aquí está mi código en C++: “`c++ // C++ extern "C" { const char* foo() { std::string res = "foo"; return res.c_str(); } } <pre><code><br />y . . . Read more
Estoy practicando Idris y quiero obtener una lista de rebanadas de un vector. Primero, definí la siguiente función window que devuelve m elementos a partir del índice i (es decir, xs [i:i + m]): import Data.Vect <p>window : (i : Nat) -> (m : Nat) -> Vect (i + (m . . . Read more