Skip to content

Instantly share code, notes, and snippets.

View yangsu's full-sized avatar

Yang Su yangsu

  • San Francisco, CA
  • X @ys65
View GitHub Profile
import sys
import Event_pb2
event = Event_pb2.Event()
if len(sys.argv) != 2:
print 'Usage:', sys.argv[0], 'datafile'
sys.exit(-1)
f = open(sys.argv[1], 'rb')
@yangsu
yangsu / Gemfile
Created August 9, 2013 21:48
Gemfile for Octopress
source "http://rubygems.org"
group :development do
gem 'rake', '~> 0.9.2'
gem 'rack', '~> 1.4.1'
gem 'jekyll', '~> 0.11.2'
gem 'rdiscount', '~> 1.6.8'
gem 'redcarpet', '~> 2.1.1'
gem 'maruku', '~> 0.6.1'
gem 'pygments.rb', '~> 0.2.12'
@yangsu
yangsu / haskell-do-monad.hs
Created April 23, 2013 22:11
Haskell Do Notation
module Main where
crack = do x <- ['a'..'c'] ; y <- ['a'..'c'] ; z <- ['a'..'c'] ;
let { password = [x, y, z] } ;
if attempt password
then return (password, True)
else return (password, False)
attempt pw = if pw == "cab" then True else False
@yangsu
yangsu / haskell-simple-monad.hs
Last active December 16, 2015 14:19
Haskell Simple Monad
module Main where
stagger :: (Num t) => t -> t
stagger d = d + 2
crawl d = d + 1
treasureMap d =
crawl (
stagger (
stagger d))
@yangsu
yangsu / treasure_map.rb
Created April 23, 2013 22:04
Treasure Map Example
def treasure_map(v)
v = stagger(v)
v = stagger(v)
v = crawl(v)
return( v )
end
@yangsu
yangsu / haskell-maybe-ex.hs
Created April 23, 2013 20:39
Haskell Maybe Example
Prelude> return "WHAT" :: Maybe String
Just "WHAT"
Prelude> Just 9 >>= \x -> return (x*10)
Just 90
Prelude> Nothing >>= \x -> return (x*10)
Nothing
@yangsu
yangsu / haskell-maybe.hs
Created April 23, 2013 20:38
Haskell Maybe Monad
instance Monad Maybe where
return x = Just x
Nothing >>= f = Nothing
Just x >>= f = f x
fail _ = Nothing
@yangsu
yangsu / haskell-tuples.hs
Last active December 16, 2015 14:09
Haskell Tuples
Prelude> zip [1 .. 5] ["one", "two", "three", "four", "five"]
[(1,"one"),(2,"two"),(3,"three"),(4,"four"),(5,"five")]
Prelude> let rightTriangles' = [ (a,b,c) | c <- [1..10], b <- [1..c], a <- [1..b], a^2 + b^2 == c^2]
Prelude> rightTriangles'
[(3,4,5),(6,8,10)]
@yangsu
yangsu / haskell-do-monad.hs
Created April 23, 2013 19:50
Haskell do Monad
module Main where
tryIo = do putStr "Enter your name: " ;
line <- getLine ;
let { backwards = reverse line } ;
return ("Hello. Your name backwards is " ++ backwards)
@yangsu
yangsu / haskell-simple-monad.hs
Last active December 16, 2015 14:09
Haskell Simple Monad
module Main where
data Position t = Position t deriving (Show)
stagger (Position d) = Position (d + 2)
crawl (Position d) = Position (d + 1)
rtn x = x
x >>== f = f x
treasureMap pos = pos >>==