Resultados de la búsqueda a petición "haskell"

3 la respuesta

¿Cómo construyo una lista con una longitud de tipo dependiente?

Sumergiendo mi dedo del pie en las aguas de los tipos dependientes, tuve una grieta en el ejemplo canónico de "lista con longitud estáticamente escrita". {-# LANGUAGE DataKinds, GADTs, KindSignatures #-} -- a kind declaration data Nat = Z | S ...

4 la respuesta

Problemas de principiante de Haskell con dividir una lista a la mitad

Aquí está mi intento de escribir una función que divida una lista de longitud par en dos mitades iguales. halve :: [a] -> ([a], [a]) halve x | even len = (take half x, drop half x) | otherwise = error "Cannnot halve a list of odd length" where ...

1 la respuesta

Quickcheck, que define instancias arbitrarias utilizando una función cuyo resultado depende de sus argumentos

Tengo una funcionarbExample para generar un azarExample tipo de datos que depende de varias funciones. Estoy tratando de hacer algunas pruebas de propiedad haciendoquickCheck prop_example, el problema es que no sé cómo definir unArbitrary ...

3 la respuesta

¿Qué es exactamente el tipo "*" en Haskell?

En Haskell, las expresiones (de nivel de valor) se clasifican entipos, que se puede anotar con:: al igual que:3 :: Int, "Hello" :: String, (+ 1) :: Num a => a -> a. Del mismo modo, los tipos se clasifican entipos. En GHCi, puede inspeccionar el ...

1 la respuesta

Levante para fijar el * interior * de una pila de transformador de mónada

Supongamos que tengo unIO Int envuelto en unStateT MyState, entonces tengo un valor deState MyState Int que quiero usar en la mónada apilada. ¿Cómo lo levanto en este sentido interno? Ya se usarlift oliftIO si obtengo algo compatible con el ...

1 la respuesta

Pruebas de nivel de tipo abierto en Haskell / Idris

En Idris / Haskell, uno puede probar las propiedades de los datos anotando los tipos y utilizando constructores GADT, como con Vect, sin embargo, esto requiere codificar la propiedad en el tipo (por ejemplo, un Vect debe ser un tipo separado de ...

4 la respuesta

Formas de empaquetar elementos (adyacentes) de una lista en 2 tuplas

Me preguntaba si habría una manera concisa / de una sola línea para hacer lo siguiente: pack :: [a] -> [(a, a)] pack [] = [] pack [_] = [] pack (x:y:xs) = (x, y) : pack xsQue es lo mismo que: pack' xs = [(x, y) | (x, y, i) <- zip3 xs (tail xs) ...

2 la respuesta

Acceso a la documentación para una función desde la línea de comando de Hoogle

Al buscar una función enel sitio web de Hoogle [https://www.haskell.org/hoogle/] , uno ve la documentación asociada con ella, por ejemplo: mod :: a -> a -> a infixl 7 integer modulus, satisfying (x `div` y)*y + (x `mod` y) == xHoogle también ...

2 la respuesta

Función Mónada sin secuencia dentro de Haskell

Tengo verdaderos problemas para diseñar la contrafunción de Haskellsequence función, que Hoogle me dice que aún no existe. Así es como se comporta: ghci> sequence [Just 7, Just 8, Just 9] Just [7,8,9] ghci> sequence [getLine, getLine, getLine] ...

1 la respuesta

unboxing, matrices (dispersas) y biblioteca de vectores haskell

Me gustaría manipular matrices (completas o dispersas) de manera eficiente con la biblioteca de vectores de Haskell. Aquí hay un tipo de matriz import qualified Data.Vector.Unboxed as U import qualified Data.Vector as V data Link a = Full ...