Skip to content

Instantly share code, notes, and snippets.

View iokasimov's full-sized avatar
🗿

Murat Kasimov iokasimov

🗿
View GitHub Profile
module ArrowOperatorQuestion where
import Control.Arrow ((***))
f :: u -> v -> w
f _ _ = error "f"
g :: x -> y -> z
g _ _ = error "g"
h :: (u,x) -> (v,y) -> (w,z)
@qrilka
qrilka / gist:1277878
Created October 11, 2011 11:40
Warp + Pool
{-# LANGUAGE OverloadedStrings #-}
import Network.Wai
import Network.Wai.Handler.Warp
import Network.HTTP.Types (status200)
import Blaze.ByteString.Builder (copyByteString)
import qualified Data.ByteString.UTF8 as BU
import Data.Monoid
import Data.Enumerator (Iteratee)
import Data.Pool
import qualified Database.HDBC as H
@sjoerdvisscher
sjoerdvisscher / asyncidiom.hs
Created June 13, 2012 21:21
Applicative async programming
import Control.Concurrent
import Control.Concurrent.Async
import Control.Applicative
import Control.Monad
import Data.Traversable
newtype Concurrently a = Concurrently { runConcurrently :: IO a }
instance Functor Concurrently where
@xdcrafts
xdcrafts / Quasar.Main.hs
Created October 3, 2012 02:46
Simple http web server implementation.
module Quasar.Main where
import Control.Monad
import Data.Char
import System.IO
import Network
import Data.Time.LocalTime
data RequestType = GET | POST deriving (Show)
@YoEight
YoEight / examples.hs
Created October 10, 2012 09:43
Haskell machine package examples
module Examples where
import Control.Applicative
import Control.Monad.Trans
import Data.Machine
data Bit = EMPTY | One | Zero
instance Show Bit where
@dpwiz
dpwiz / twitsearch.hs
Last active April 11, 2017 09:23
Haskell version of http://eax.me/scala/
import Data.Aeson
import Network.HTTP
import System.Environment (getArgs)
import Control.Monad (mapM_)
import Data.Maybe (fromMaybe)
import qualified Data.ByteString.Lazy.Char8 as LBS
import qualified Data.Text as T
import qualified Data.HashMap.Strict as HM
@t0yv0
t0yv0 / Opt.v
Created March 23, 2013 15:35
A simple example of how to use Coq as a programming language - how to compute more efficient programs out of declarative programs, and then extract the efficient programs to ML. This facility is very obvious to serious users of Coq, but it took me a while as a beginner to realize this is practical and how can it be done. Compilers like Haskell d…
Require Import String.
Definition Parser (a : Type) :=
string -> option (a * string).
Definition Return {a} (x: a) : Parser a :=
fun s => Some (x, s).
Definition Bind {a b} (x: Parser a) (f: a -> Parser b) : Parser b :=
fun s =>
@xdcrafts
xdcrafts / SimpleWarpExample.hs
Created August 8, 2013 06:15
Simple example of Warp WAI usage.
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Data.ByteString.Lazy.Char8 hiding (putStrLn)
import Network.HTTP.Types.Status
import Network.Wai
import Network.Wai.Handler.Warp (run)
import System.IO
import System.Exit
import Control.Concurrent
@sigrlami
sigrlami / ab.md
Last active March 4, 2022 14:40
List of companies using Haskell https://haskellcosm.com

WARNING This list outdated, for the up to date version visit https://haskellcosm.com

List of companies that use Haskell in Production

Types of work:

  • RD - research&development
  • PR - product
  • IP - in-house product
  • CO - consulting
@queertypes
queertypes / ip.hs
Created June 13, 2014 16:45
Parse an IP address with attoparsec
{-# LANGUAGE OverloadedStrings #-}
import Control.Applicative
import Data.Attoparsec.Text
import Data.Word
data IP = IP Word8 Word8 Word8 Word8 deriving (Eq, Show)
parseIP :: Parser IP
parseIP = IP <$> dec <*> dec <*> dec <*> decimal <?> "parse IP Address"
where dot = char '.'