List of things you don't have to know to be producive in Haskell:
- Category theory
- Type theory
- Constructive mathematics
- Lambda calculus
import Text.Parsec hiding ((<|>), many) | |
import Text.Parsec.String | |
import Text.Printf | |
import Control.Applicative | |
data MyType = Single Int | |
| Tuple MyType MyType | |
instance Show MyType where | |
show (Single x) = show x |
13:15 <xQuasar> | HASKELL IS FOR FUCKIN FAGGOTS. YOU'RE ALL A BUNCH OF | |
| FUCKIN PUSSIES | |
13:15 <xQuasar> | JAVASCRIPT FOR LIFE FAGS | |
13:16 <luite> | hello | |
13:16 <ChongLi> | somebody has a mental illness! | |
13:16 <merijn> | Wow...I suddenly see the error of my ways and feel | |
| compelled to write Node.js! | |
13:16 <genisage> | hi | |
13:16 <luite> | you might be pleased to learn that you can compile | |
| haskell to javascript now |
This file has moved from Gist to my Github 'articles' repository. The new version can be found here:
https://github.com/quchen/articles/blob/master/applicative_monad.md
import Network | |
import System.IO | |
import Control.Exception | |
main = loop | |
loop :: IO a | |
loop = do | |
putStr "Enter message: " >> hFlush stdout | |
message <- getLine |
main=(s(s(k(s))(s(k(k))(s(k(s))(s(k(s(k(s))))(s(s(k(s))(s(k(k))(s(k(b))i)))(k(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(c(k))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(s(s(k(s))(s(k(k))(s(k(s))(s(k(s(k(s))))(s(s(k(s))(s(k(k))(s(k(b))i)))(k(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(s(b)(c(k)))))))))))))))))))))))))))))))) |
s x y z = x z (y z) | |
k x y = x | |
i = s k k | |
c = s (s (k (s (k s) k)) s) (k k) | |
b = s (k s) k | |
hello = | |
s(s(k s)(s(k k)(s(k s)(s(k(s(k s)))(s(s(k s)(s(k k)(s(k b)i)))(k(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s | |
b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(c k)))))))))))))))))))))))))))))))))))))))))) | |
)))))))))))))))))))))))))))(s(s(k s)(s(k k)(s(k s)(s(k(s(k s)))(s(s(k s)(s(k k)(s(k b)i)))(k(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s b(s |
-- | Store the metadata of a buffer. | |
data BufferMeta = BufferMeta { currentSize :: Int | |
, maxSize :: Maybe Int | |
} | |
-- | Like spawn', but also keeps track of metadata associated with the buffer. | |
spawn'' :: Buffer a | |
-> IO (Output a, Input a, STM (), STM BufferMeta) |
electronic single tracks/adam beyer, ida engberg - lovecraft.mp3 | |
electronic single tracks/Alberto Ruiz - Alien (Dani Sbert Remix).mp3 | |
electronic single tracks/alex di stefano - multiverse.mp3 | |
electronic single tracks/barnt - geffen.mp3 | |
electronic single tracks/Bas Thomas - Second 2 None (Mike Maass Remix).mp3 | |
electronic single tracks/black vel - assign (fabian schumann remix).mp3 | |
electronic single tracks/boris brejcha - angel in the sky.mp3 | |
electronic single tracks/Bunte Bummler - Youre Mine.mp3 | |
electronic single tracks/C.P. - Metal Heart %28einsauszwei edit%29.mp3 | |
electronic single tracks/Cari Lekebusch - Obscurus Sanctus.mp3 |