Skip to content

Instantly share code, notes, and snippets.

-- Context Tree Code
import System.Random
import Control.Monad
import Data.IORef
class Model m where
update :: m -> [Bool] -> Bool -> m
updateBlock :: m -> [Bool] -> [Bool] -> m
predict1 :: m -> [Bool] -> Bool -> Double
predictList :: m -> [Bool] -> [Bool] -> Double
@applicative
applicative / Sampling.hs
Last active October 7, 2015 14:08
Sampling.hs
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE ExistentialQuantification #-}
{-# LANGUAGE FlexibleContexts #-}
module Graphics.Bling.Sampling (
-- * Sampling Types
SampleWindow(..), Sampler, Sampled, mkRandomSampler, mkStratifiedSampler,
mkStratifiedSampler',
@applicative
applicative / mem.hs
Created July 20, 2012 16:15 — forked from jartur/mem.hs
Memory hog + Stack overflow
import qualified Data.Map as M -- cabal install unordered-containers
import qualified Data.ByteString.Char8 as B
import Data.List (foldl')
main = B.interact $ exhibit . foldl' updateCount M.empty . B.words
where exhibit counts = B.concat $ zipWith pretty keys_ counts_ where
counts_ = M.elems counts ; keys_ = M.keys counts
pretty w count = w +++ " :: " +++ show count +++ "\n"
updateCount m w = M.insertWith (+) w (1::Int) m