Skip to content

Instantly share code, notes, and snippets.

William Taysom wtaysom

Block or report user

Report or block wtaysom

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
wtaysom /
Last active Jan 27, 2020
A Review of Paul Graham's Bel, Chris Granger's Eve, and a Silly VR Rant

Hello Friends,

This elf begging to climb onto the web for Christmas began as a personal email, a review of Paul Graham's little Lisp Bel. He sprouted arms, legs, and in gingerstyle ran away. Arms for symbols, legs for conses: these primitives are the mark a Lisp — even more so than the parenthesis. What do we get when we remove these foundation stones: naming and pairing?

No pairs. No cons. No structure. Unordered. Chaos. Eve, a beautifully incomplete aspect oriented triple store. No need for legs when you can effortlessly transport to your destination. Lazy. Pure. Here and now, a retrospective.

No symbols. No names. No variables. Combinators. Forth. No need for arms when you can effortlessly push and pop your stack. No words. A world without words. Virtual worlds. Virtual reality. Space. Time. Motion. Action. Kinetic Programming, a proposal.

I apologize in advance. Checking my pocketwatch, I see I haven't t


Keybase proof

I hereby claim:

  • I am wtaysom on github.
  • I am wtaysom ( on keybase.
  • I have a public key ASDhhgHIa18lWpOtSZzCPBm4S0H0Hl8_Ajn3mJAhNd6l9wo

To claim this, I am signing this object:

wtaysom /
Last active Aug 29, 2015
Interactive Bayes Rule
<style type="text/css"> .posterior { color: hsl(120, 95%, 38%); } .prior { color: hsl(0, 95%, 38%); } .sensitivity {
wtaysom / nim.clj
Created Sep 4, 2012
Nim Minimal Viable Snippet in Clojure
View nim.clj
;;; Player
(defn next [p]
(if (= p :P1) :P2 :P1))
;;; Game
(defn winner [game]
(if (= (:pile game) 0) (next (:player game)) nil))
wtaysom / nim.hs
Created Sep 4, 2012
Nim Minimal Viable Snippet in Haskell
View nim.hs
import Data.Maybe (isJust, isNothing, fromJust, fromMaybe)
import Data.List (find)
import Control.Applicative ((<|>))
--- Player ---
data Player = P1 | P2 deriving (Show, Eq)
next :: Player -> Player
next P1 = P2
wtaysom / .pryrc.rb
Created Dec 19, 2011
William's .pryrc
View .pryrc.rb
## _why inspired citizen428 delivered MethodFinder.
require_relative 'methodfinder_what'
## Pry Config
Pry.config.pager = false
Pry.config.editor = "mate -w"
Pry.config.prompt = [proc{"? "}, proc{"| "}]
wtaysom / methodfinder_what.rb
Created Dec 19, 2011
_why's Ruby MethodFinder addition tweaked and revised.
View methodfinder_what.rb
require 'methodfinder'
# _why's MethodFinder addition tweaked and revised.
# <>
class MethodFinder
def self.with_redirected_streams
wtaysom / gist:1427232
Created Dec 3, 2011
SVN ignore is a pain. This script soothes it.
View gist:1427232
#!/usr/bin/env ruby -wKU
## A response to <>.
usage: svnignore [--stop] [FILE...]
Tells SVN to ignore each FILE.
Recurses into directories as needed.
--stop stops SVN from ignoring each FILE.
wtaysom / where_is.rb
Created Sep 23, 2011
A little Ruby module for finding the source location where class and methods are defined.
View where_is.rb
module Where
class <<self
attr_accessor :editor
def is_proc(proc)
def is_method(klass, method_name)
You can’t perform that action at this time.