Skip to content

Instantly share code, notes, and snippets.

View ecounysis's full-sized avatar

Eric Christensen ecounysis

View GitHub Profile
@ecounysis
ecounysis / whatever.clj
Created August 16, 2011 16:07
Learning Clojure
(require '[clojure.contrib.repl-utils :as repl])
(clojure.core/use 'clojure.core)
(ns books)
(defstruct book :author :title :year :rank)
(defmacro makebook [& vs]
`(struct-map book ~@vs))
@ecounysis
ecounysis / clojure-font-lock-setup.el
Created August 18, 2011 23:55 — forked from michalmarczyk/clojure-font-lock-setup.el
coloured SLIME REPL for Clojure
;;; all code in this function lifted from the clojure-mode function
;;; from clojure-mode.el
(defun clojure-font-lock-setup ()
(interactive)
(set (make-local-variable 'lisp-indent-function)
'clojure-indent-function)
(set (make-local-variable 'lisp-doc-string-elt-property)
'clojure-doc-string-elt)
(set (make-local-variable 'font-lock-multiline) t)
@ecounysis
ecounysis / sicp.2.18.scm
Created September 6, 2011 22:37
Exercise 2.18
(define (new-reverse ls1)
(define (rev-acc ls2 acc)
(if (null? ls2)
acc
(rev-acc (cdr ls2) (cons (car ls2) acc))))
(rev-acc ls1 '()))
@ecounysis
ecounysis / paip_3.1.lisp
Created September 7, 2011 00:59
PAIP Exercise 3.1
((lambda (x)
((lambda (y)
(+ x y))
(* x x)))
6)
@ecounysis
ecounysis / paip_3.9.lisp
Created September 7, 2011 04:24
PAIP Exercise 3.9
(defun len-reduce (x)
(let ((len 0))
(reduce (lambda (z w) (setf len (1+ len)))
(append x '(0)))))
@ecounysis
ecounysis / paip_3.12.lisp
Created September 7, 2011 05:52
PAIP Exercise 3.12
(defun pp (sentence)
(let ((cstring (format nil "~{ ~s~}." sentence)))
(format nil
(concatenate 'string "~@(" cstring "~)"))))
@ecounysis
ecounysis / sicp_2.20.scm
Created September 7, 2011 23:40
Exercise 2.20
(define (same-parity x . w)
(define (inner-parity a b)
(cond
((null? b) b)
((or (and (even? a) (even? (car b)))
(and (odd? a) (odd? (car b))))
(cons (car b) (inner-parity a (cdr b))))
(else (inner-parity a (cdr b)))))
(inner-parity x w))
@ecounysis
ecounysis / gps.lisp
Created September 9, 2011 05:04
GPS from PAIP
(defun find-all (item sequence &rest keyword-args
&key (test #'eql) test-not &allow-other-keys)
"Find all thos elements of sequence that match item,
according to keywords. Doesn't alter sequence."
(if test-not
(apply #'remove item sequence
:test-not (complement test-not) keyword-args)
(apply #'remove item sequence
:test (complement test) keyword-args)))
@ecounysis
ecounysis / SICP_2.23.scm
Created September 9, 2011 06:32
SICP Exercise 2.23
(define (freach fn lst)
(cond ((null? lst) #t)
(else (fn (car lst)) (freach fn (cdr lst)))))
@ecounysis
ecounysis / SICP_2.23.lisp
Created September 9, 2011 06:56
SICP Exercise 2.23 (common lisp)
(defun freach (fn x)
(cond ((null x) t)
(t (funcall fn (car x)) (freach fn (cdr x)))))