Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View roman's full-sized avatar

Roman Gonzalez roman

View GitHub Profile
@roman
roman / lib.hsfiles
Last active January 9, 2018 21:14
Snapshot of library skeleton for Haskell Projects
{-# START_FILE README.md #-}
# {{name}}
> Description of what this library does
## Table Of Contents
* [Raison d'etre](#raison-detre)
* [Library Usage](#library-usage)
* [Installation](#installation)
* [Development Notes](#development)
@roman
roman / throttle.hs
Last active December 7, 2017 05:50
Implementation of throttle in Conduit 0.5.x
import Control.Concurrent (forkIO, killThread,
threadDelay, newEmptyMVar,
tryTakeMVar, putMVar)
import Control.Monad (void, forever)
import Control.Concurrent.STM (atomically)
import Control.Monad.Trans (MonadIO(..))
import Control.Monad.Trans.Resource (MonadResource, allocate)
import Data.Conduit (GInfConduit, awaitE)
throttle :: (MonadResource m) => Int -> GInfConduit a m a
@roman
roman / Zip.hs
Created August 23, 2011 17:13
Haskell's zip and zipWith functionality in Clojure
numbers :: [Int]
numbers = zip [1, 2, 3] [4, 5, 6]
main :: IO ()
main = print numbers
-- Output: [(1,4), (2,5), (3,6)]
@roman
roman / Lib.hs
Last active February 5, 2017 00:13
module Main where
import Control.Applicative
import Control.Monad
import Data.List (foldl')
import qualified Data.Sequence as Seq
import qualified Data.Vector (freeze)
import qualified Data.Vector.Unboxed as V
import qualified Data.Vector.Unboxed.Mutable as VM
@roman
roman / Lib.hs
Last active February 4, 2017 23:14
module Main where
import Data.List (sort, sortBy)
import Control.Applicative
import Control.Monad (forM, replicateM_)
import Data.Set (Set)
import qualified Data.Set as Set
import qualified Data.Sequence as Seq
import qualified Data.Vector (freeze)
import qualified Data.Vector.Unboxed as V
module Main where
import Control.Applicative
import Control.Monad (forM, replicateM_)
import qualified Data.Vector (freeze)
import qualified Data.Vector.Unboxed as V
import qualified Data.Vector.Unboxed.Mutable as VM
mkPolygonVector :: IO (V.Vector Int)
@roman
roman / page_205_exercises.hs
Created April 16, 2009 08:23
Real World Haskell Exercises
module GlobRegex
(
globToRegex,
matchesGlob
)
where
import Text.Regex.Posix ((=~))
import Data.Char (toLower)

Brave and Delightful development with Elm

Roman Gonzalez will introduce Elm, an opinionated language that is inspired on a simplified Haskell syntax. Elm provides all the guarantees that good statically typed languages give, plus:

@roman
roman / HelloShelly.hs
Created December 16, 2013 23:24
Experiments with Shelly
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Control.Applicative
import Control.Lens
import Control.Monad.Trans (MonadIO(..))
@roman
roman / CloudUtil.hs
Last active December 30, 2015 20:09
Possible memory leak in Maestro.Distributed.Process.Platform.Supervisor v2
{-# LANGUAGE ScopedTypeVariables #-}
module CloudUtil
( module Control.Distributed.Process
, cloud
, cloudWithRemotable
, cloudWithRemotableAsync)
where
import Control.Exception (try, SomeException, bracket)
import Control.Concurrent (threadDelay)