Skip to content

Instantly share code, notes, and snippets.

View epsilonhalbe's full-sized avatar

Martin Heuschober epsilonhalbe

View GitHub Profile
@epsilonhalbe
epsilonhalbe / Main.hs
Created August 28, 2015 10:57
Turtle Script for linking ghc from HVRs repository
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Turtle
import Prelude hiding (FilePath)
import Data.Either (rights)
import qualified Control.Foldl as F
import qualified Data.Text as T
import Data.Text()
@epsilonhalbe
epsilonhalbe / StudiBrief.md
Last active August 29, 2015 14:01
Brief an die Studierenden der Mathematik

∀ Studis: ∃: Life after Uni ??

Martin Heuschober

  1. Juni 2014

CC-BY-NC-SA 4.0

% use with > pdflatex --jobname=games-p1 games.tex
\documentclass{article}
\usepackage{graphics}
\usepackage{amsfonts,amssymb,amsmath}
\usepackage{tikz}
\usetikzlibrary{positioning}
\pgfrealjobname{games}
\begin{document}
\beginpgfgraphicnamed{games-p1}

Side Effects

Intro

A common statement about monads is that they make pure programming with side effects possible - so let us look at a first example of functions that allow to have debugging informations.

@epsilonhalbe
epsilonhalbe / hmindmap.tex
Last active August 29, 2015 14:10
Haskell mindmap
% Author: Martin Heuschober
% License: CC-BY-4.0
% see https://creativecommons.org/licenses/by/4.0/
\documentclass{article}
\usepackage[paperwidth=55cm
,paperheight=45cm
,left=1cm
,right=1cm
,top=1cm
@epsilonhalbe
epsilonhalbe / mastermind.hs
Created March 8, 2011 00:14
λ-heads 2011.03.07
{- my (=ε/2) haskellous version of the game called mastermind -}
import Data.List.Split (splitOneOf)
{- has to be fetched with
foo@bar~> cabal update
foo@bar~> cabal install split
-}
import Random
main = do
module Transformer (dec2bin, bin2dec, dec2hex, hex2dec, num2letters, letters2num) where
dec2bin :: Int -> [Int]
dec2bin n
|n==0 = []
|otherwise = (dec2bin (div n 2))++[mod n 2]
bin2dec :: [Int] -> Int
bin2dec bs = foldl1 (\x y ->x*2+y) bs
@epsilonhalbe
epsilonhalbe / MyCombinatorics.hs
Created January 2, 2012 20:22
combinatorical functions for lambdaheads - 2012-01-09
module MyCombinatorics where
import Data.List ( (\\),
sort)
import Control.Applicative ( liftA2,
Applicative,
pure)
(^*) :: (a -> b) -> (b -> c) -> a -> c
f ^* g = g . f
@epsilonhalbe
epsilonhalbe / MyCombinatorics.hs
Created January 9, 2012 12:45
combinatorical functions for lambdaheads - 2012-01-09
module MyCombinatorics where
import Data.List ( (\\),
sort)
import Control.Applicative ( liftA2,
Applicative,
pure)
(^*) :: (a -> b) -> (b -> c) -> a -> c
f ^* g = g . f
{-# LANGUAGE NoMonomorphismRestriction #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE ViewPatterns #-}
{-# LANGUAGE BangPatterns #-}
import Control.Monad
import Control.Monad.Random