This file contains hidden or 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 scala.pickling._ | |
import scala.reflect.runtime.universe._ | |
import scala.util.parsing.json._ | |
import scala.collection.mutable.{StringBuilder, Stack} | |
package object edn { | |
implicit val pickleFormat: EdnPickleFormat = new EdnPickleFormat | |
} |
This file contains hidden or 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
(use '[clojure.core.match :only [match]]) | |
(defn evaluate [env [sym x y]] | |
(match [sym] | |
['Number] x | |
['Add] (+ (evaluate env x) (evaluate env y)) | |
['Multiply] (* (evaluate env x) (evaluate env y)) | |
['Variable] (env x))) | |
(def environment {"a" 3, "b" 4, "c" 5}) |
This file contains hidden or 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
(use '[clojure.core.match :only [match]]) | |
(defn evaluate [env [sym x y]] | |
(match [sym] | |
['Number] x | |
['Add] (+ (evaluate env x) (evaluate env y)) | |
['Multiply] (* (evaluate env x) (evaluate env y)) | |
['Variable] (env x))) | |
(def environment {"a" 3, "b" 4, "c" 5}) |
This file contains hidden or 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
;; Here is a spike of a lightweight in-process pubsub mechanism that allows pure ;; functional consumers, both blocking and asynchronous. | |
;; This defines the event stream, in this case just a series of numbers, | |
;; a new one produced each second | |
(defn timer [] | |
(lazy-seq | |
(do | |
(Thread/sleep 1000) | |
(cons (System/nanoTime) (timer))))) |
This file contains hidden or 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 metaballs | |
(:import | |
[javax.swing JFrame] | |
[java.awt Canvas Graphics Color] | |
java.awt.image.BufferStrategy)) | |
(set! *warn-on-reflection* true) | |
(def ^:const SIZE 250) | |
(defn direction [p v] |
This file contains hidden or 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
(require 'leiningen.core.project)(leiningen.core.project/defproject _"":dependencies[[leiningen-core"2.0.0-preview8"]]:plugins[[lein-swank"1.4.4"]]:main project :source-paths["."])(ns project)(defn -main[](let[f(doto(java.awt.Frame.)(.setUndecorated true))](->(java.awt.GraphicsEnvironment/getLocalGraphicsEnvironment).getDefaultScreenDevice(.setFullScreenWindow f))(.createBufferStrategy f 2)(let[b(.getBufferStrategy f)s(.getBounds f)](while 1(let[g(.getDrawGraphics b)](try(.setColor g(java.awt.Color.(rand-int 0xffffff)))(.fillRect g 0 0(.width s)(.height s))(finally(.dispose g))))(when-not(.contentsLost b)(.show b))(Thread/sleep 20))))) |
This file contains hidden or 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
;; http://dosync.posterous.com/know-your-bounds | |
(defrel connected ^:index x ^:index y) | |
(facts connected [[1 2] [1 5]]) | |
(facts connected [[2 1] [2 3] [2 5]]) | |
(facts connected [[3 2] [3 4]]) | |
(facts connected [[4 3] [4 5] [4 6]]) | |
(facts connected [[5 1] [5 2] [5 4]]) | |
(facts connected [[6 4]]) |
This file contains hidden or 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 sudoku | |
(:refer-clojure :exclude [==]) | |
(:use clojure.core.logic)) | |
(defn get-square [rows x y] | |
(for [x (range x (+ x 3)) | |
y (range y (+ y 3))] | |
(get-in rows [x y]))) | |
(defn init [vars hints] |
This file contains hidden or 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 distincto [s] | |
(if (seq s) | |
(all | |
(distinctfd (first s)) | |
(distincto (next s))) | |
s#)) | |
(defn all-infd [xs d] | |
(if (seq xs) | |
(all |
This file contains hidden or 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
;; Datomic example code | |
(use '[datomic.api :only (db q) :as d]) | |
;; ?answer binds a scalar | |
(q '[:find ?answer :in ?answer] | |
42) | |
;; of course you can bind more than one of anything | |
(q '[:find ?last ?first :in ?last ?first] | |
"Doe" "John") |
NewerOlder