Skip to content

Instantly share code, notes, and snippets.

Keybase proof

I hereby claim:

  • I am bodil on github.
  • I am bodil (https://keybase.io/bodil) on keybase.
  • I have a public key whose fingerprint is 2D44 9044 793B 9F78 2E8B 7A0B 2374 7866 393D FC57

To claim this, I am signing this object:

@bodil
bodil / parse.js
Last active August 29, 2015 14:12
/* @flow -*- mode: flow -*- */
/*
* Example:
*
* var p = require("./parse");
*
* var parser = p.str([
* p.many1(p.letter),
* p.many(p.digit)
;;; -*- lexical-binding: t -*-
(require 'dash)
(defun var (c) (vector c))
(defun var? (x) (vectorp x))
(defun var=? (x1 x2) (= (elt x1 0) (elt x2 0)))
(defun assp (pred l)
(-first (lambda (i) (funcall pred (car i))) l))
@bodil
bodil / extremestartup.coffee
Created August 19, 2011 08:05
A CoffeeScript solution for @jhannes's evil Extreme Startup question set
# To install dependencies:
# $ npm install express mongoose connect-mongoose
fs = require "fs"
express = require 'express'
mongoose = require 'mongoose'
sessionStore = require("connect-mongoose")(express)
Schema = mongoose.Schema
mongo_uri = "mongodb://localhost/bodilpwnz"
(ns lol
(:use clojure.test))
(def board [nil :bomb nil nil
:bomb nil nil nil
nil nil :bomb nil
:bomb nil nil :bomb])
(with-test
(defn bomb?
(ns lol
(:use clojure.test))
(def board [[nil :mine nil nil ]
[:mine nil nil nil ]
[nil nil :mine nil ]
[:mine nil nil :mine]])
(defn y [c] (c 0))
(defn x [c] (c 1))
@bodil
bodil / anagram.clj
Created March 5, 2012 16:03
Anagram-kata
(ns ohai
(:use clojure.test))
(def words
'("foo"
"rab"
"rba"))
(with-test
(defn anagram? [a b]
@bodil
bodil / addagram.clj
Created April 1, 2012 00:19
Clojure solution for http://addagram.mytestbench.com/ with ~1s execution time.
(ns addagram.core
(:use [clojure.test]
[clojure.java.io :only [reader]]))
(with-test
(defn sort-largest [l]
(sort-by #(- (count %)) l))
(is (= ["blerk" "quux" "foo" "bar"]
(sort-largest ["foo" "quux" "bar" "blerk"]))))
@bodil
bodil / README.md
Last active December 20, 2015 11:08
The core.async exercise from the July 30th London Clojure Dojo

core.async example thing

To run:

  • checkout https://github.com/clojure/core.async and install it using lein install
  • make a project directory for this code
  • put omgcoreasync.cljs in a src subdirectory, project.clj and index.html in the root
  • go lein cljsbuild once to build
  • load index.html in a browser and watch it go
@bodil
bodil / webbit.clj
Created September 26, 2013 17:21
Basic Webbit adapter for Ring.
(ns ring.adapter.webbit
(:require [clojure.string :as s]
[clojure.java.io :as io])
(:import [org.webbitserver WebServer WebServers HttpHandler]
[java.io File InputStream]))
(defn- transform-headers [headers]
(apply hash-map (mapcat (fn [e] [(s/lower-case (.getKey e))
(.getValue e)]) headers)))