This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns joc | |
(:use [clojure.test])) | |
(defn rpn-orig | |
([tokens] (rpn-orig tokens [])) | |
([[top & tail] stack] | |
(lazy-seq | |
(if top | |
(if (fn? top) | |
(let [l (peek stack) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defmacro defcontract [name & forms] | |
(let [body (collect-bodies forms)] | |
(list* 'defn name body))) | |
(declare build-contract) | |
(defn collect-bodies [forms] | |
(for [form (partition 3 forms)] | |
(build-contract form))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns joy.gui.DynaFrame | |
(:gen-class | |
:name joy.gui.DynaFrame | |
:extends javax.swing.JFrame | |
:prefix df- | |
:implements [clojure.lang.IMeta] | |
:state state | |
:init init | |
:constructors {[String] [String]} | |
:methods [[display [java.awt.Container] void] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(import (javax.swing Box BoxLayout JTextField JPanel | |
JSplitPane JLabel JButton JOptionPane) | |
(java.awt.event ActionListener) | |
(java.awt Component GridLayout FlowLayout)) | |
(defn shelf [& components] | |
(let [shelf (JPanel.)] | |
(.setLayout shelf (FlowLayout.)) | |
(doseq [c components] (.add shelf c)) | |
shelf)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defn calc-slice-count [thing] | |
"Calculates the number of possible slices using the formula: | |
(n + r - 1)! | |
------------ | |
r!(n - 1)! | |
where n is (count thing) and r is 2" | |
(let [! #(reduce * (take % (iterate inc 1))) | |
n (count thing) | |
r 2] | |
(/ (! (- (+ n r) 1)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns joy.web | |
(:import (com.sun.net.httpserver HttpHandler HttpExchange HttpServer) | |
(java.net InetSocketAddress HttpURLConnection) | |
(java.io IOException FilterOutputStream) | |
(java.util Arrays))) | |
(defn default-handler [txt] | |
(proxy [HttpHandler] [] | |
(handle [exchange] | |
(.sendResponseHeaders exchange HttpURLConnection/HTTP_OK (.length txt)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;;; hanging-shift-mode.el --- | |
;; Author: Jürgen Hötzel <juergen@archlinux.org> | |
;; http://stackoverflow.com/questions/3431911/emacs-should-set-the-second-character-of-a-word-in-lower-case | |
(require 'cl) | |
(defun hanging-shift-sanitise-word () | |
(interactive) | |
(let ((word (current-word t t))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defmacro defmethod-explicit | |
[multifn dispatch-val & fn-tail] | |
(let [[kw n & body] fn-tail] | |
(if (= :as kw) | |
`(let [~n ~dispatch-val] | |
(defmethod ~multifn ~dispatch-val ~body)) | |
`(defmethod ~multifn ~dispatch-val ~fn-tail)))) | |
(defmulti expl-mm (juxt first second)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defmacro defunits-of [quantity base-unit & units] | |
(let [magnitude (gensym) | |
unit (gensym) | |
conversions (apply hash-map base-unit 1 units)] | |
`(defmacro ~(symbol (str "unit-of-" quantity)) | |
[~magnitude ~unit] | |
`(* ~~magnitude | |
~(relative-units ~unit ~conversions))))) |
OlderNewer