¿Haskell, o un comstackdor específico, tiene algo así como lambdas de nivel de tipo (si es incluso un término)? Para dar más detalles, digamos que tengo un tipo parametrizado Foo ab y quiero que Foo _ b sea una instancia de, digamos, Functor. ¿Hay algún mecanismo que me permita hacer algo similar a instance Functor […]
Estoy tratando de comprender la progtwigción de estilo orientado a objetos en Haskell, sabiendo que las cosas van a ser un poco diferentes debido a la falta de mutabilidad. He jugado con clases de tipo, pero mi comprensión de ellas está limitada a ellas como interfaces. Así que he codificado un ejemplo de C ++, […]
Un amigo mío me preguntó por qué estaba aprendiendo Haskell. Para demostrar el poder de Haskell, escribí un pequeño progtwig que mostraba una lista de números primos: main = do putStr “Enter the number of prime numbers to display: ” number Bool isPrime n = not . any ((== 0) . mod n) $ [2..floor […]
Sé que TypeSynomymInstances solo permite que se usen sinónimos de tipo completamente aplicados en los encabezados de instancia , pero parece que sería útil si pudiera usar sinónimos de tipo aplicados paritalmente para usarlos también. Por ejemplo: class Example e where thingy :: a -> b -> eab — legit, but awkward newtype FuncWrapper eab […]
Si digo que let 5 = 10 , ¿por qué 5 + 1 devuelve 6 lugar de 11 ?
Necesito pequeñas listas de números aleatorios gaussianos para una simulación, así que probé lo siguiente: import System.Random seed = 10101 gen = mkStdGen seed boxMuller mu sigma (r1,r2) = mu + sigma * sqrt (-2 * log r1) * cos (2 * pi * r2) Este es solo el algoritmo Box-Muller: dados los números aleatorios […]
He leído este artículo , pero no entendí la última sección. El autor dice que Monad nos da sensibilidad al contexto, pero es posible lograr el mismo resultado utilizando solo una instancia Aplicable: let maybeAge = (\futureYear birthYear -> if futureYear < birthYear then yearDiff birthYear futureYear else yearDiff futureYear birthYear) (readMay futureYearString) (readMay birthYearString) […]
Estaba haciendo algo de desarrollo de Haskell y recompuse un código viejo en una nueva versión de GHC: The Glorious Glasgow Haskell Comstacktion System, version 7.2.1 Y cuando lo hice, recibí el siguiente error: Advertencia: -XDatatypeContexts está en desuso: se lo consideró una mala denominación, y se ha eliminado del lenguaje Haskell. Eso aparece cuando […]
¿Hay una lista completa de caracteres permitidos en alguna parte, o una regla que determina qué se puede usar en un identificador frente a un operador?
En Haskell, ¿cómo puedo generar números de Fibonacci basados en la propiedad de que el enésimo número de Fibonacci es igual al (n-2) número de Fibonacci más el (n-1) número de Fibonacci? He visto esto: fibs :: [Integer] fibs = 1 : 1 : zipWith (+) fibs (tail fibs) Realmente no entiendo eso, o cómo […]