Skip to content

Instantly share code, notes, and snippets.

Evan Sebastian evansb

Block or report user

Report or block evansb

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View 44360568.ts
type DataProvider<TKey extends string, TData> = {
getData(): TData
type ProvidedData<K1 extends string, T1> = { [key in K1]: T1 }
function getDataFromProviders<K1 extends string, T1>(p1: DataProvider<K1, T1>): ProvidedData<K1, T1>
function getDataFromProviders<K1 extends string, T1, K2 extends string, T2>(p1: DataProvider<K1, T1>, p2: DataProvider<K2, T2>): ProvidedData<K1, T1> & ProvidedData<K2, T2>
function getDataFromProviders(...providers: DataProvider<any, any>[]): {[name: string]: any } {
View example.cjsx
module.exports = React.createClass
mixins: [UITheme]
getInitialState: ->
items: []
isInfiniteLoading: false
filter: null
firstTimeFetch: true
hasNoMore: false
componentWillMount: ->
FilterStore.listen (filter) =>
View gist:42583f3aac0136aa30ad
Conventions: When I specify "simple" as result it means simply return all json of format { table_field_name: table_field_value }
GET /achievements
Table: achievements
Return list of all achievements.
GET /annotations/:code_id
Table: annotate

Keybase proof

I hereby claim:

  • I am evansb on github.
  • I am evansb ( on keybase.
  • I have a public key whose fingerprint is E018 7B67 E241 2D5D 693C 6F72 6214 1251 AB9D F1E4

To claim this, I am signing this object:

evansb / Cont.hs
Created Jan 18, 2015
Continuation Passing Style in Haskell
View Cont.hs
{-# LANGUAGE InstanceSigs #-}
import Control.Applicative
import Control.Monad
import Control.Monad.Trans.Writer
-- Here is a direct style pythagoras function
-- There are two noticeable things in the function body.
-- 1. Evaluation order of x * x vs y * y is unknown/implicit.
-- 2. We don't care what happens to the final value (implicit continuation).
pyth :: (Floating a) => a -> a -> a
evansb /
Created Jan 1, 2015
Binary Search Tree in OCAML
open Core.Std
module type COMPARABLE = sig
type t
val compare : t -> t -> int
module type NODE = sig
type 'a t
evansb / memoize.hs
Last active Aug 29, 2015
Memoization hack in Haskell, using unsafe IO operation.
View memoize.hs
module Memoize (memoize) where
import Debug.Trace
import Data.Hashable
import System.IO.Unsafe
import qualified Data.HashTable.IO as H
type HashTable k v = H.CuckooHashTable k v
evansb / avl.hs
Last active Mar 26, 2017
Purely Functional AVL Tree
View avl.hs
module AVLZipper (singleton, empty , fromList , maximum , minimum) where
import Prelude hiding (minimum, maximum)
import Control.Applicative hiding (empty)
import Control.Monad
import Control.Monad.Trans.State
import Control.Monad.Trans.Identity
import Debug.Trace
View bundles.vim
" Here come the bundles
Bundle 'gmarik/vundle'
Bundle 'Valloric/YouCompleteMe'
Bundle 'Lokaltog/powerline-fonts'
Bundle 'Lokaltog/vim-easymotion'
Bundle 'MarcWeber/vim-addon-mw-utils'
Bundle 'Raimondi/delimitMate'
Bundle 'bling/vim-airline'
Bundle 'bling/vim-bufferline'
View .vimrc
set encoding=utf-8
scriptencoding utf-8
set nocompatible
filetype off
"let $PATH='/Users/evan/.opam/system/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/evan/School/Haskell/.cabal-sandbox/bin:/Users/evan/.cabal/bin'
if has("gui_running")
set guifont=Source\ Code\ Pro\ Medium:h14
You can’t perform that action at this time.