Skip to content

Instantly share code, notes, and snippets.

import GHC.Unicode
strToTitle str = [if isSpace (fst ch) then toTitle (snd ch) else snd ch | ch <- (zip (" " ++ str) str)]
data Box = Box { box_x1 :: Integer, box_y1 :: Integer, box_x2 :: Integer, box_y2 :: Integer } deriving Show
subdivideNW Box { box_x1 = x1', box_y1 = y1', box_x2 = x2', box_y2 = y2'} = Box {
box_x1 = x1',
box_y1 = y1',
box_x2 = x1' + half_width,
box_y2 = y1' + half_height
}
where
half_width = (x2' - x1') `div` 2
@munro
munro / empty
Last active August 29, 2015 13:58
SublimeGraphvizPreview
zz
@munro
munro / facebook_messages.mcw
Created April 18, 2014 22:21
Facebook Messages designed in Macaw
{-# LANGUAGE FlexibleInstances #-}
import GHC.Float
data LangVariable = LangString String | LangNumber Double | LangNull deriving Show
class LangCoercion a where
toLangVariable :: a -> LangVariable
instance LangCoercion String where
import Control.Monad.State
import Control.Monad.Trans
type StackState a = StateT [Integer] IO a
--type StackStateIO = StateT [Integer] IO ()
push :: Integer -> StackState ()
push a = do
modify (a:)
return ()
-- How do I force evaluation when working with monadic values? :(
type HeapPtr = Integer
type VMVariable = String
__fn_0 :: [VMVariable] -> VMVariable
createFunction :: ([VMVariable] -> VMVariable) -> VMState VMVariable
setProp :: HeapPtr -> VMVariable -> VMVariable -> VMState ()
vmMain = do
vmMain :: VMState VMVariable
vmMain = do {
let (VMObject hello) = (VMObject 123);
return VMNull;
-- ^
-- parse error on input `return'
}
module Main
import meow
foo : Float
foo = 0.123
hello : Float -- can switch to Float/Int to use the correct one
hello = foo