Skip to content

Instantly share code, notes, and snippets.

; minihttpd, tiny barebones clojure web server
; http://alan.xen.prgmr.com/
(ns alandipert.minihttpd
(:use [clojure.contrib.duck-streams :only (reader writer read-lines spit to-byte-array)]
[clojure.contrib.str-utils :only (re-split str-join re-gsub)])
(:import (java.net ServerSocket URLDecoder)
(java.io File)))
(def codes {200 "HTTP/1.0 200 OK"
sealed abstract class Expr {
def eval():Double
}
case class EValue(value:Double) extends Expr {
def eval():Double = value
}
case class ESum(a:List[Expr]) extends Expr {
def eval():Double = a.foldLeft(0.0)(_+_.eval)
@alandipert
alandipert / xmpp.clj
Created October 29, 2009 12:16 — forked from hiredman/xmpp.clj
(import '(org.jivesoftware.smack XMPPConnection))
(use '[clojure.set :only (difference)])
(defn connect [jid pass]
(doto (XMPPConnection. (last (.split jid "@")))
.connect
(.login (first (.split jid "@")) pass)))
(defn ls []
; Project euler problem 138
; http://projecteuler.net/index.php?section=problems&id=138
(use 'clojure.contrib.math)
(defn height [base leg]
(sqrt (- (expt leg 2) (expt (/ base 2) 2))))
(defn base [leg height]
(* 2 (sqrt (- (expt leg 2) (expt height 2)))))
(defn running-sums1 [nums]
(rest (reduce #(conj %1 (+ (last %1) %2)) [0] nums)))
(defn running-sums2 [nums]
(rest (reverse (reduce #(cons (+ (first %1) %2) %1) '(0) nums))))
(def num-runs 1000)
(def range-ceil 100)
(time (dotimes [_ num-runs]
(ns cljutils.math
"Functions for doing stuff")
(defn- powers-of [n]
"For given base n, create lazy sequence of powers of n"
(iterate #(* % n) 1))
(defn- char-range [& limits]
"Given an even number of limit characters, creates an inclusive character sequence"
(apply concat (map (fn [[start end]]
# Clojure syntax highlighting for GNU source-highlight
# rocks with SHJS
# http://gist.github.com/265810
comment start ";"
include "number.lang"
vardef SPECIALCHAR = '\\.'
if (! this.sh_languages) {
this.sh_languages = {};
}
sh_languages['clojure'] = [
[
[
/;/g,
'sh_comment',
1
],
;; Y combinator and fib in clojure
;; see also:
;; http://www.fatvat.co.uk/2009/04/understanding-y-combinator.html
;; ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-453.pdf p72
(defn Y [f]
((fn [g]
(f (g g)))
(fn [g]
(fn [x]
(import '(javax.swing JLabel JButton JPanel JTextField JFrame)
'(java.awt.event ActionListener)
'(java.awt GridLayout))
(defmacro on-action [component event & body]
`(. ~component addActionListener
(proxy [java.awt.event.ActionListener] []
(actionPerformed [~event] ~@body))))
(defn celsius []