Skip to content

Instantly share code, notes, and snippets.

@mnicky
mnicky / lis.py
Created December 10, 2012 20:48
Lispy: Scheme Interpreter in Python
################ Lispy: Scheme Interpreter in Python
## (c) Peter Norvig, 2010; See http://norvig.com/lispy.html
################ Symbol, Env classes
from __future__ import division
Symbol = str
@mnicky
mnicky / lispy.py
Created December 11, 2012 19:20
Lispy2: (Advanced) Scheme Interpreter in Python
################ Scheme Interpreter in Python
## (c) Peter Norvig, 2010; See http://norvig.com/lispy2.html
################ Symbol, Procedure, classes
from __future__ import division
import re, sys, StringIO
class Symbol(str): pass
@mnicky
mnicky / lisp_macros.lisp
Created December 11, 2012 21:23
McCarthy's LISP with macros
;source: http://ideone.com/lEx0T
;explanation: http://stackoverflow.com/a/3685147
(defun null. (x)
(eq x '()))
(defun and. (x y)
(cond (x (cond (y 't) ('t '())))
('t '())))
@mnicky
mnicky / interp1.lisp
Created December 11, 2012 21:36
simple Scheme interpreter, including macros, by Peter Norvig
;source: http://norvig.com/paip/interp1.lisp
;;; -*- Mode: Lisp; Syntax: Common-Lisp; -*-
;;; Code from Paradigms of Artificial Intelligence Programming
;;; Copyright (c) 1991 Peter Norvig
;;; File interp1.lisp: simple Scheme interpreter, including macro.sgi
(defun interp (x &optional env)
"Interpret (evaluate) the expression x in the environment env."
@mnicky
mnicky / interp2.lisp
Created December 11, 2012 21:37
Tail-recursive Scheme interpreter by Peter Norvig
;source: http://norvig.com/paip/interp2.lisp
;;; -*- Mode: Lisp; Syntax: Common-Lisp; -*-
;;; Code from Paradigms of Artificial Intelligence Programming
;;; Copyright (c) 1991 Peter Norvig
;;; File interp2.lisp: Tail-recursive Scheme interpreter.
(requires "interp1")
@mnicky
mnicky / interp3.lisp
Created December 11, 2012 21:38
Scheme interpreter with explicit continuations by Peter Norvig
;source: http://norvig.com/paip/interp3.lisp
;;; -*- Mode: Lisp; Syntax: Common-Lisp; -*-
;;; Code from Paradigms of Artificial Intelligence Programming
;;; Copyright (c) 1991 Peter Norvig
;;; File interp3.lisp: Scheme interpreter with explicit continuations
;;; One bug fix by Cheng Lu Hsu, hsuc@cory.Berkeley.EDU
@mnicky
mnicky / mk.scm
Created December 11, 2012 21:40 — forked from swannodette/gist:4262177
MiniKanren impl. in Scheme
#lang r5rs
(define-syntax var
(syntax-rules ()
((_ x) (vector x))))
(define-syntax var?
(syntax-rules ()
((_ x) (vector? x))))
@mnicky
mnicky / clojure-blip-videos-orig-urls.txt
Created December 14, 2012 11:30
Direct links to Clojure videos on Blip TV
http://blip.tv/file/get/Richhickey-ClojureDataStructuresPart1411.flv
http://blip.tv/file/get/Richhickey-ClojureDataStructuresPart2306.flv
http://blip.tv/file/get/Richhickey-ClojureSequences733.flv
http://blip.tv/file/get/Richhickey-ClojureConcurrency252.flv
http://blip.tv/file/get/Richhickey-ClojureForJavaProgrammers2Of2680.mov
http://blip.tv/file/get/Richhickey-ClojureForJavaProgrammers1Of2174.flv
http://blip.tv/file/get/Richhickey-ClojureForLispProgrammersPart2299.mov
http://blip.tv/file/get/Richhickey-ClojureForLispProgrammersPart1372.flv
http://blip.tv/file/get/Richhickey-HammockdrivenDevelopment465.mov
http://blip.tv/file/get/Richhickey-MichaelFogusFertileGroundTheRootsOfClojure492.mov
@mnicky
mnicky / lux_aeterna.txt
Created January 27, 2013 15:56
Lux Aeterna - Requiem for a Dream
Intro
|E|-----------------------|-----------------------|
|B|-----------------------|-----------------------|
|G|-2-----2-----2-----2---|-----------------------| x2
|D|-----------------------|-3-----3-----2-----2---|
|A|-0-----0-----0-----0---|-----------------------|
|E|-----------------------|-1-----1-----0-----0---|
"""A simple implementation of a greedy transition-based parser. Released under BSD license."""
from os import path
import os
import sys
from collections import defaultdict
import random
import time
import pickle
SHIFT = 0; RIGHT = 1; LEFT = 2;