Skip to content

Instantly share code, notes, and snippets.

View bendisposto's full-sized avatar

Jens Bendisposto bendisposto

View GitHub Profile
(ns repl.freestyle)
(set! *print-length* 50)
(let [r (range 100 -101 -1)]
[(first r) (last r)])
(let [r (range 0 1002 2)]
[(first r) (last r)])
;; ---------- Homoiconicity
(+ 1 2 3)
'(+ 1 2 3)
'(+ 1 x 3)
(map type '(+ 1 x :foo))
(list + 1 2 3)
@bendisposto
bendisposto / vl_23_10_2014
Created October 27, 2014 18:47
Code aus der Vorlesung vom 23.10.2014
;; Emacs/Leiningen Integration: Cider
;; (https://github.com/clojure-emacs/cider)
;; Mein Emacs Setup:
;; https://github.com/bendisposto/emacs.d
;; Andere Editoren sind auch ganz toll!
(use 'clojure.repl)
@bendisposto
bendisposto / instaparse-helpers
Created March 25, 2014 07:08
Removes superflous whitespaces from input. Can be useful to make Instaparse grammars easier (no need to deal with whitespaces everywhere). However, it kills the formatting of the input
(defn normalize-input [s] (clojure.string/join " " (remove empty? (clojure.string/split s #"\s"))))
@bendisposto
bendisposto / muster.clj
Last active August 29, 2015 13:56
Lösungsvorschlag Blatt 9
(ns muster.core
(:use clojure.algo.monads))
(comment
;; Aufgabe 1
;; a)
(defn punkte [x k]
(let [p (* 2 (- x (/ k 2)))]
(ns repl.datastructures
(:use clojure.repl))
(defmacro t [& body]
`(let [sw-out# (java.io.StringWriter.)]
(binding [*out* sw-out#]
(let [result# (time (do ~@body))]
{:out (.toString sw-out#)
:result result#}))))
@bendisposto
bendisposto / muster.clj
Created January 30, 2014 13:35
Lösungsvorschlag Blatt 8
(ns muster.core)
(comment
(defprotocol PKonto
(einzahlen [k b])
(abheben? [k b])
(abheben [k b])
(sperren [k])
(entsperren [k]))
(defrecord Girokonto [stand limit gesperrt pins]
@bendisposto
bendisposto / dynamic.clj
Created January 30, 2014 13:28
Code aus der Wiederholungsstunde vom 30.1.
(ns wdhg.dynamic)
;; Lexical scoping
(def x 2)
(defn foo [n] (* x n))
(def a (foo 3))
@bendisposto
bendisposto / core.clj
Created January 30, 2014 13:21
Code aus der Vorlesung vom 30.1.
(ns vl.core
(:require [clojure.set :refer [union]])
(:use clojure.algo.monads clojure.walk clojure.repl))
(comment
;; Wiederholung
;; Monaden dienen (unter Anderem)
(ns repl.core
(:require [clojure.tools.reader.edn :as edn])
(:use clojure.algo.monads clojure.walk))
(comment
;; clojure.tools.reader.edn ist nicht in Clojure enthalten
;; [org.clojure/tools.reader "0.8.3"]
(def serialized (prn-str '(1 2 3)))
(def data (edn/read-string serialized))