Skip to content

Instantly share code, notes, and snippets.

@ncweinhold
ncweinhold / meta.scm
Created September 16, 2022 15:39
Metacircular Interpreter From SICP
(define apply-in-underlying-scheme apply)
(define (eval exp env)
(cond ((self-evaluating? exp) exp)
((variable? exp)
(lookup-variable-value exp env))
((quoted? exp)
(text-of-quotation exp))
((assignment? exp)
(eval-assignment exp env))
@ncweinhold
ncweinhold / trivial.cpp
Last active April 10, 2020 18:47
Trivial Example
#include <iostream>
void display_hello_world() {
std::cout << "Hello World" << std::endl;
}
int main() {
std::cout << "Silly little example" << std::endl;
display_hello_world();
@ncweinhold
ncweinhold / todo_react.js
Created July 3, 2017 19:18
Simple react + redux code for a todo app
const {
createStore,
bindActionCreators
} = Redux;
const {
Provider,
connect
} = ReactRedux;
const {
render
@ncweinhold
ncweinhold / script.scm
Created March 23, 2014 15:07
Example of calling Guile scheme code from C. The scheme code can be modified without recompiling the C code.
(define simple-func
(lambda ()
(display "Script called, now I can change this") (newline)))
(define quick-test
(lambda ()
(display "Adding another function, can modify without recompilation")
(newline)
(adding-without-recompilation)))
@ncweinhold
ncweinhold / spellcheck2.lisp
Created February 24, 2014 19:07
Small bloom filter example based on the example at http://en.literateprograms.org/Bloom_filter_(C)
(defvar *hashfunctions* 2)
(defvar *m* 2500000)
(defvar *bloom* (make-array *m* :initial-element nil))
(defun add-word (word)
(let ((downcase-word (string-downcase word)))
(setf (elt *bloom* (mod (sax-hash downcase-word) *m*)) t)
(setf (elt *bloom* (mod (sdbm-hash downcase-word) *m*)) t)))
(defun contains-word (word)
;; This is based on the solution given here http://programmingpraxis.com/2009/04/21/probabilistic-spell-checking/2/
;; just ported to common lisp
(defvar *k* 7)
(defvar *m* 1000000)
(defvar *bloom* (make-array *m* :initial-element nil))
(defun key (i word)
(let* ((c (string (code-char (+ i 96))))
@ncweinhold
ncweinhold / main.go
Created June 10, 2012 19:48
Dabbling with Go
package main
import (
"net/http"
"fmt"
)
func main() {
http.HandleFunc("/", indexHandler)
http.HandleFunc("/about", aboutHandler)
@ncweinhold
ncweinhold / gist:1062572
Created July 3, 2011 20:18
Dabbling with Tornado
import sqlite3
import os.path
import tornado.httpserver
import tornado.ioloop
import tornado.web
class TestApplication(tornado.web.Application):
def __init__(self):
handlers = [
@ncweinhold
ncweinhold / gist:1011280
Created June 6, 2011 22:45
different ways of summing lists of numbers
#lang racket
(define (my-sum-1 lst)
(cond
((null? lst) 0)
(else (+ (car lst) (my-sum-1 (cdr lst))))))
(define (my-sum-2 lst)
(define (my-sum-iter res lst)
(cond
@ncweinhold
ncweinhold / snake.py
Created May 30, 2011 19:53
curses snake WIP
import curses
import time
class Direction(object):
NORTH=0
EAST=1
SOUTH=2
WEST=3
class Position(object):