This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Example of storing multiple types into single Map using Enum | |
import Control.Monad.State (State) | |
import Control.Monad.State (runState) | |
import Control.Monad.State (evalState) | |
import Control.Monad.State (gets) | |
import Control.Monad.State (modify) | |
import Control.Monad (liftM2) | |
import Data.Map (Map) | |
import Data.Maybe (fromMaybe) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{-| | |
Module : CFPFD | |
Description : Constraint Functional Programming over Finite Domain | |
Copyright : (c) notae@me.com, 2014 | |
License : BSD-style | |
Maintainer : notae@me.com | |
Stability : experimental | |
Portability : POSIX | |
This module provides interfaces for constraint programming |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- ListT Example | |
import Control.Monad.List (ListT(..)) | |
import Control.Monad.State (State) | |
import Control.Monad.State (modify) | |
import Control.Monad.Trans (lift) | |
import Control.Monad.Writer (Writer) | |
import Control.Monad.Writer (tell) | |
liftList :: (Monad m) => [a] -> ListT m a |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- ST Monad Example | |
import Control.Monad.ST (ST) | |
import Control.Monad.ST (runST) | |
import Data.STRef (STRef) | |
import Data.STRef (modifySTRef) | |
import Data.STRef (newSTRef) | |
import Data.STRef (readSTRef) | |
prog :: Int -> ST s Int |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{- | |
Heterogeneous List Example | |
from | |
Strongly Typed Heterogeneous Collections | |
http://okmij.org/ftp/Haskell/HList-ext.pdf | |
(This HList definition is different from the version in Hackage) | |
-} | |
{-# LANGUAGE RankNTypes #-} | |
{-# LANGUAGE TypeOperators #-} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{-| | |
Module : CFPFD1 | |
Description : Constraint Functional Programming over Multiple Finite Domain | |
Copyright : (c) notae@me.com, 2014 | |
License : BSD-style | |
Maintainer : notae@me.com | |
Stability : experimental | |
Portability : POSIX | |
This module provides interfaces for constraint programming |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# with GHC 7.8.3 (Haskell Platform 2014.2.0.0) on Mac OS X 10.9.4 | |
$ cabal sandbox init | |
$ cabal install bindings-DSL | |
$ cabal configure -fCoreAudio | |
$ cabal install -fCoreAudio | |
$ cd example/ | |
$ cabal --sandbox-config-file=../cabal.sandbox.config configure | |
$ cabal --sandbox-config-file=../cabal.sandbox.config build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh -e | |
# | |
# Module : ghc_setup_home.sh | |
# Description : GHC/Cabal initial setup script for home directory | |
# Copyright : (c) notae@me.com, 2014 | |
# License : BSD-style | |
# Maintainer : notae@me.com | |
# Stability : experimental | |
# Portability : POSIX |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh -xe | |
WORKDIR=~/Documents/Haskell | |
MWORKDIR=~/Documents/Haskell/music-suite | |
cabal sandbox delete | |
cabal sandbox init | |
cabal sandbox add-source \ | |
${WORKDIR}/cpfd \ | |
${WORKDIR}/muse \ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Before: | |
$ ./bashcheck | |
Vulnerable to CVE-2014-6271 (original shellshock) | |
Vulnerable to CVE-2014-7169 (taviso bug) | |
./bashcheck: line 18: 2839 Segmentation fault: 11 bash -c "true $(printf '<<EOF %.0s' {1..79})" 2> /dev/null | |
Vulnerable to CVE-2014-7186 (redir_stack bug) | |
Test for CVE-2014-7187 not reliable without address sanitizer | |
Variable function parser still active, likely vulnerable to yet unknown parser bugs like CVE-2014-6277 (lcamtuf bug) |
OlderNewer