Preguntas etiquetadas con haskell

82
¿Cómo puedo desinstalar una versión de un paquete Cabal?

Happstack Lite se me está rompiendo porque está recibiendo la versión 0.5 de blaze-html y quiere la versión 0.4. Cabal dice que están instaladas ambas versiones 0.4.3.4 y 0.5.0.0. Quiero eliminar 0.5.0.0 y usar solo la versión anterior. Pero Cabal no tiene un comando de "desinstalación", y...

81
Haskell "no hace nada" IO, o si no tiene más

Quiero hacer algo en Haskell que se vea así: main1 = do s <- getLine if s == "foo" then putStr "You entered foo" Obviamente, esto no es legal ya que no existe else. Una alternativa en la que he pensado: nop :: IO () nop = sequence_ [] main2 = do s <- getLine if s == "foo" then...

81
¿Qué es el polimorfismo Levity?

Como indica el título de la pregunta, quiero saber qué es el polimorfismo Levity y cuál es su motivación. Sé que esta página tiene algunos detalles, pero la mayoría de las explicaciones allí se me pasan por alto. :) Si bien esta página es un poco más amigable, todavía no puedo entender la...

80
Lentes funcionales

¿Alguien podría explicarme los lentes funcionales? Es un tema sorprendentemente difícil para Google y no he progresado. Todo lo que sé es que proporcionan una funcionalidad de obtención / configuración similar a la de OO.

80
Comonads de cremallera, genéricamente

Dado cualquier tipo de contenedor, podemos formar el Zipper (centrado en elementos) y saber que esta estructura es un Comonad. Esto se exploró recientemente con maravilloso detalle en otra pregunta de Stack Overflow para el siguiente tipo: data Bin a = Branch (Bin a) a (Bin a) | Leaf a deriving...

79
Dividir Int por Int y devolver Int

Necesito una función que obtenga dos Ints ( ay b) y devuelva A/Bcomo Int. Estoy seguro de que A/Bsiempre será un número entero. Aquí está mi solución: myDiv :: Int -> Int -> Int myDiv a b = let x = fromIntegral a y = fromIntegral b in truncate (x / y) Pero quiero encontrar una...

79
Manejo de excepciones en Haskell

Necesito ayuda para comprender el uso de las tres funciones de Haskell probar ( Control.Exception.try :: Exception e => IO a -> IO (Either e a)) atrapar ( Control.Exception.catch :: Exception e => IO a -> (e -> IO a) -> IO a) manejar ( Control.Exception.handle :: Exception e...