Haskell

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.

Contents

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."

Monads became the final solution to the IO problem, and confused programmers the world over.

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.

Prison Break

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.

Code Snippets

Hello World

  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
  

Notable Works

Below is a list of notable works written in Haskell.

External Links