Skip to content

Instantly share code, notes, and snippets.

@erantapaa
erantapaa / e14.hs
Created January 15, 2015 04:05
euler #14 collatz problem
{-# LANGUAGE BangPatterns #-}
import Data.Array.IO
import Data.Array.Unboxed
import Control.Monad
collatz x
| even x = div x 2
| otherwise = 3*x+1
@erantapaa
erantapaa / p8.hs
Created January 14, 2015 05:37
implementing sequencePipes
import System.Environment
import qualified Data.Array as A
import Data.Array.IO
import qualified Data.Array.MArray as M
import Data.Array.Base ( UArray, unsafeFreezeSTUArray )
import Data.Array.Unboxed
import qualified Data.Array.Unboxed as U
import Control.Monad
import Debug.Trace
import Pipes
@erantapaa
erantapaa / gist:82b59282dee72347efc2
Last active August 29, 2015 14:11
building gtk 2.x on OSX for Haskell

Check list for installing gtk 2.x for Haskell on OSX:

  1. Install XQuartz (link) - this is needed for the xcb-shm package config file.
  2. brew install gtk+
  3. export PKG_CONFIG_PATH=/usr/local/Cellar/cairo/(...whatever...)/lib/pkgconfig:/opt/X11/lib/pkgconfig/:
  4. Make sure alex and happy are installed - they are needed by gtk2hs-buildtools
  5. cabal install gtk2hs-buildtools
  6. cabal install gtk
@erantapaa
erantapaa / gist:69fa2c060f67d74e477a
Created December 15, 2014 16:28
Timing subsequencesOfSize
import System.TimeIt
import System.Environment
import Text.Printf
subsequencesOfSize1 :: Int -> [a] -> [[a]]
subsequencesOfSize1 n xs = let l = length xs
in if n>l then [] else subsequencesBySize xs !! (l-n)
where
subsequencesBySize [] = [[[]]]
subsequencesBySize (x:xs) = let next = subsequencesBySize xs
@erantapaa
erantapaa / Main.hs
Created November 30, 2014 01:31
Using StateT with Haskeline
-- A receipe for using StateT with haskeline's InputT transformer.
-- Derived from this /r/haskell post: http://www.reddit.com/r/haskell/comments/1os0yq/haskeline_woes/
--
-- The key is using Control.Monad.State.Strict - using .Lazy doesn't work.
import Control.Monad.State.Strict
import Control.Monad.Trans (lift)
import System.Console.Haskeline