Haskell is a functional committee-planned programming language that wants everything done its way and no one else's. Although it claims to play well with others, this is a complete lie, and it never leaves its mother's basement. Haskell's codebase is fucking huge, weighing in at almost a gigabyte for the main compiler and other essential utilities.
Haskell is similar to Firefox in that there are thousands of extensions that can be enabled, that way Haskell can be turned into Python in case the user is uncomfortable with functional programming. Also like Firefox, Haskell is a language that everyone talks about, but no one uses.
The Early Years
Many years ago, a group of researchers decided that out of the 200 different functional programming languages that were available at the time, all of them sucked equally. However, Miranda, the cream of the crap, had the largest ass and was chosen to become the base from which Haskell would be born.
Simon Peyton Jones and his merry band of mathematicians, hereto-after referred to as "the gang," went to work on what they figured would become the best programming language ever...
The IO Question
Once the gang finished planning their language, they realized they had created something that had no I/O. In other words, when a Haskell program ran, the box heated up, but nothing happened. Realizing their ghastly mistake, the gang tried various kinds of methods in order to address the issue. They experiemented with Xylatol, Mixadolin V, Quothenol D, and Bayer Children's Heroin. Finally, after a 17-hour long trip on Ritalin, the gang pulled an obscure concept out of Category Theory, known only as the "Monad."
What the Fuck is a Monad?
A Monad is kind of like a box (only it's not), in which data may be "placed" inside of it (only it's not). A Monad is a lot like a Chinese finger trap; once you get your dick caught in it, there's no getting it out. In other words, Monads are a prison for data. Monads are the sole reason people have a hard time understanding Haskell. In fact, the concept of Monads is so scary that the fact that they are scary is scary in and of itself, disabling people from even attempting to understand Monads.
Although no one talks about it, there is a super 1337 backdoor into the monad prison system (as far as IO goes, anyway).
Prelude> import System.IO.Unsafe Prelude> :t getLine -- Uh oh, evil IO has taken our data prisoner! getLine :: IO a Prelude> x = unsafePerformIO getLine Prelude> :t x x :: a -- Congrats, assface!
The Now Years
Today, Haskell remains the single most talked about language that no one uses. Many have tried to use Haskell, but are unable to comprehend the dizzingly abstract concept of a Monad. Even the word, "Monad," scares the hell out of most programmers. Entire books have been written just about Monads. However, most of them are very cryptic, and their authors probably don't even know what a monad is.
So, instead of doing anything constructive with the language, most people just write about the language like the dumb pricks they are, while the gang continues to make more language extensions that no one will use.
module Main where main = putStrLn "Wello Horld!"
Get 'er Done
module Main where class Fuckable a where fuck :: a -> Maybe a data Dog = Dog String Bool instance Fuckable Dog where fuck (Dog name fucked) = if fucked then Nothing else Just (Dog ("Fucked " ++ name) True) screwThePooch :: Dog -> Maybe Dog screwThePooch = fuck main = do let myDog = Dog "Jackson" False return $ screwThePooch myDog
Hack the Gibson
module Main where import System.Gibson import System.Gibson.SecretCodes hack = hackTheGibson secretCode1 main = return hack
Below is a list of notable works written in Haskell.
- The Gibson
- Haskell - Yes, it is written in itself.
- Windows 95
- HackWare V3.4 Xcelsior Edition
- Dat Ass
- Learn You a Haskell for Great Good
- Haskell.org - Stop being a bitch and use it.
- LearnYouAHaskell.com - Stop being a bitch and learn it.
Haskell is part of a series on Programming.
[Enter the Matrix]
Haskell is part of a series on
Visit the Softwarez Portal for complete coverage.