View keybase.md

Keybase proof

I hereby claim:

  • I am obriencj on github.
  • I am obriencj (https://keybase.io/obriencj) on keybase.
  • I have a public key whose fingerprint is B813 6B61 D568 811E 626F 0DBA B5AB A230 5282 9C5C

To claim this, I am signing this object:

View tailcall.py
#! /usr/bin/env python3
from functools import partial
from inspect import currentframe
import sys
STACK_LIMIT = 64
View xmlrpc_unittest_harness.py
from threading import Thread
from unittest import TestCase
from xmlrpclib import ServerProxy
from SimpleXMLRPCServer import SimpleXMLRPCServer
class Dummy(object):
def __init__(self):
self.data = list(xrange(0,10))
View eval_no_closures.py
def attempt_1():
data = list()
# no prob, bob. data is captured as a closure cell of action
action = lambda x: data.append(x)
action(5)
return data
View despair.scm
((lambda (f)
((lambda (r) (f (lambda () ((r r)))))
(lambda (r) (f (lambda () ((r r)))))))
(lambda (despair)
(lambda () (despair))))
View lambda.py
"""
My take on the Church of Lambda. I've tweaked and added a few thing to
make life more enjoyable
author: Christopher O'Brien <siege@preoccupied.net>
inspiration from http://doos.m3r.nl/~ivo/lambda.txt
"""
View output of spexy_try
maybe:python-spexy siege$ PYTHONPATH=./ python tmp/spexy_try.py
The original spexy source is
-----
(defun division (x y)
(let ((result None))
(try
(setf result (/ x y))
((ZeroDivisionError)
(println "division by zero!" x "/" y)
View more spexy repl
maybe:python-spexy siege$ PYTHONPATH=./ python
Python 2.7.6 (default, Nov 18 2013, 15:12:51)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.2.79)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from spexy import repl
>>> from datetime import datetime
>>> repl(globals())
>>>> (let ((who "siege") (date 1999))
(letrec ((fmt "Hello %s, party like it is %i!")
(msg (% fmt (make-tuple who date))))
View spexy repl example
[siege@maybe src]$ python spexy.py
>>>> (defun make_pair ()
(letrec ((value None)
(getter (lambda () value))
(setter (lambda (v) (setf value v))))
(make-list getter setter)))
--> globals().__setitem__('make_pair', (lambda : ((lambda value, getter, setter: ((value.__setitem__(0, None), getter.__setitem__(0, (lambda : value[0])), setter.__setitem__(0, (lambda v: value.__setitem__(0, v))),)[-1], [getter[0], setter[0],],)[-1])([None], [None], [None]))))
>>>> (letrec ((gs (make_pair)))
(define getter (getf gs 0))
(define setter (getf gs 1)))
View cli_stub.py
#!/usr/bin/env python2
"""
Given two tags, do absolutely nothing.
This script is just a stub illustrating the bits I re-use for every
CLI utility I write.