Skip to content

Instantly share code, notes, and snippets.

@isomorphism
isomorphism / output.txt
Created September 25, 2015 04:12
parsing with annotated hex dump
----------------------------------------------------------------------
vertex group
0x00004394 - 0x000043c3
0x4394 flags: 1073741826
0x4398 (16 bytes skipped):
0x43a8 vertex array bytes array, # entries: 135800
0x43ac vertex array bytes array offset: 0x47178
0x43b0 (8 bytes skipped):
0x43b8 vertex array stride bytes: 40
@isomorphism
isomorphism / A.hs
Created February 22, 2015 09:36
Kind incompatibility error
{-# LANGUAGE NoMonomorphismRestriction #-}
{-# LANGUAGE Rank2Types #-}
{-# LANGUAGE PolyKinds #-}
module A where
import Control.Lens
import Data.Vinyl
import GHC.TypeLits
class A f where
@isomorphism
isomorphism / Bug.hs
Created August 7, 2014 00:27
GHCJS storable vector bug?
module Main where
import Data.Vector.Storable as V
main = do
print $ V.fromList [1..9 :: Float]
-- output:
-- "fromList [5.831554e-39,5.831554e-39,1.0,1.0,1.0,1.0,1.0,1.0,1.0]"
@isomorphism
isomorphism / Main.hs
Created April 20, 2014 22:01
ghcjs issue
module Main where
import GHCJS.DOM
import GHCJS.DOM.Types
import GHCJS.DOM.Document
import GHCJS.DOM.EventM
main = do
Just doc <- currentDocument
connect "keydown" doc $ do
@isomorphism
isomorphism / A.hs
Created April 14, 2014 22:21
ghcjs newtype bug
module A where
import GHCJS.Types
newtype Foo = Foo (JSRef ())
foreign import javascript unsafe "" foo :: IO Foo
{- Output:
@isomorphism
isomorphism / Map.hs
Created May 12, 2013 00:55
Comments on code structure and style. My remarks are preceded by a ~ in the comments.
module Map
( RoomId, Connection
, Room(..), Map
, describeRoom
, numberRooms
, generateMap
, Wumpus (..)
) where
-- use a proper key/value lookup data structure instead of lists
@isomorphism
isomorphism / Nim.hs
Created January 10, 2012 09:24
Code review
-- Suggested changes for http://codereview.stackexchange.com/q/7623/4949
module Nim where
import Data.List
import Data.Maybe
import qualified Data.Map as Map
--Domain
--Nim is a mathematical game of strategy
@isomorphism
isomorphism / 1.prof
Created January 2, 2012 02:00
profiling results
Sun Jan 1 20:57 2012 Time and Allocation Profiling Report (Final)
Main +RTS -sstderr -p -RTS
total time = 8.30 secs (415 ticks @ 20 ms)
total alloc = 519,870,364 bytes (excludes profiling overheads)
COST CENTRE MODULE %time %alloc
calcRoots Main 74.7 38.7
@isomorphism
isomorphism / SetNFA.hs
Created December 19, 2011 06:30
quick NFA using a mock-monadic fold with Set instead of []
import Data.Set (Set)
import qualified Data.Set as S
bindSet :: (Ord a, Ord b) => Set a -> (a -> Set b) -> Set b
bindSet s k = S.unions . S.toList $ S.map k s
foldSet :: (Ord a ) => (a -> b -> Set a) -> a -> [b] -> Set a
foldSet _ a [] = S.singleton a
foldSet f a (x:xs) = bindSet (f a x) (\fax -> foldSet f fax xs)
module Main where
import Control.Monad.State
import Data.Map (Map)
import qualified Data.Map as M
import Data.Set (Set)
import qualified Data.Set as S
import Data.List (isPrefixOf, intercalate)
import Data.Char (toLower)