Skip to content

Instantly share code, notes, and snippets.

View frenchy64's full-sized avatar

Ambrose Bonnaire-Sergeant frenchy64

  • Madison, Wisconsin
View GitHub Profile
(cf (fn [arg] (if (true? arg) 1 "foo"))
[Boolean -> (U Number String)
:filters {:then (| (& (is true 0)
(is Number RET))
(& (is false 0)
(is String RET)))}]))
@frenchy64
frenchy64 / REPL.clj
Created March 24, 2014 14:40
austin NPE
user=> (require 'cemerick.austin.repls)
nil
user=> (cemerick.austin.repls/exec)
NullPointerException clojure.core/complement/fn--4048 (core.clj:1357)
(defn disj
([set] set)
([set key]
(when set
(. set (disj key))))
([set key & ks]
(when set
(let [ret (disj set key)]
(if ks
(recur ret (first ks) (next ks))
(ns timl.set)
;start clojure.core
(defn max-key
([k x] x)
([k x y] (if (> (k x) (k y)) x y))
([k x y & more]
(reduce #(max-key k %1 %2) (max-key k x y) more)))
(defn remove
@frenchy64
frenchy64 / juxt.clj
Last active August 29, 2015 14:00
juxt.clj
(All [b1 ...]
(All [x r b2 ...]
(Fn [[b1 ... b1 -> b2] ... b2 -> [b1 ... b1 -> '[b2 ... b2]]]
[[b1 ... b1 -> r] * -> [b1 ... b1 -> (Vec r)]]
[[x * -> b2] ... b2 -> [x * -> '[b2 ... b2]]]
[[x * -> r] * -> [x * -> (Vec r)]])))
(All [b1 ...]
(All [r b2 ...]
[[b1 ... b1 b2 ... b2 -> r] b1 ... b1 -> [b2 ... b2 -> r]]))
(All [b1 ...]
(All [y b2 ...]
(Fn [[b1 ... b1 b2 ... b2 -> y] b1 ... b1 (HSequential [b2 ... b2]) -> y]
[[b1 ... b1 r * -> y] b1 ... b1 (U nil (Seqable r)) -> y])))
(defprotocol Foo
(is-foo [this, a :- Number] :- Number)
(is-bar [this, a :- Int] :- Int
[this, b :- Number] :- Number)
(is-baz [this, a :- Int] :- Int
[this, a :- Int, b :- Int] :- Int
[this, a :- Int, b :- Int, c :- Int] :- Int))
(def init-aliases
'[
^{:doc "A type that returns true for clojure.core/integer?"
:forms [AnyInteger]}
clojure.core.typed/AnyInteger (U Integer Long clojure.lang.BigInt BigInteger Short Byte)
^{:doc "A type that returns true for clojure.core/integer?"
:forms [Int]}
clojure.core.typed/Int (U Integer Long clojure.lang.BigInt BigInteger Short Byte)
^{:doc "A type that returns true for clojure.core/number?"
@frenchy64
frenchy64 / type_map.clj
Created May 15, 2014 19:26
File mapping
(ns clojure.core.typed.test.interop
(:import (java.io File))
(:require [clojure.core.typed :as t :refer [ann non-nil-return check-ns cf]]))
(ann f File)
(def f (File. "a"))
(ann prt (U nil String))
(def prt (.getParent ^File f))