Skip to content

Instantly share code, notes, and snippets.

@swannodette
Created June 10, 2011 04:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save swannodette/1018223 to your computer and use it in GitHub Desktop.
Save swannodette/1018223 to your computer and use it in GitHub Desktop.
(macroexpand '(RelHelper 18))
'(do
(defprotocol IRel (setfn [this arity f]))
(deftype
Rel
[name
meta
f1
f2
f3
f4
f5
f6
f7
f8
f9
f10
f11
f12
f13
f14
f15
f16
f17
f18
f19]
clojure.lang.IObj
(withMeta
[_ meta]
(Rel.
name
meta
f1
f2
f3
f4
f5
f6
f7
f8
f9
f10
f11
f12
f13
f14
f15
f16
f17
f18
f19))
(meta [_] meta)
clojure.lang.IFn
(invoke [_ a1] (f1 a1))
(invoke [_ a1 a2] (f2 a1 a2))
(invoke [_ a1 a2 a3] (f3 a1 a2 a3))
(invoke [_ a1 a2 a3 a4] (f4 a1 a2 a3 a4))
(invoke [_ a1 a2 a3 a4 a5] (f5 a1 a2 a3 a4 a5))
(invoke [_ a1 a2 a3 a4 a5 a6] (f6 a1 a2 a3 a4 a5 a6))
(invoke [_ a1 a2 a3 a4 a5 a6 a7] (f7 a1 a2 a3 a4 a5 a6 a7))
(invoke [_ a1 a2 a3 a4 a5 a6 a7 a8] (f8 a1 a2 a3 a4 a5 a6 a7 a8))
(invoke
[_ a1 a2 a3 a4 a5 a6 a7 a8 a9]
(f9 a1 a2 a3 a4 a5 a6 a7 a8 a9))
(invoke
[_ a1 a2 a3 a4 a5 a6 a7 a8 a9 a10]
(f10 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10))
(invoke
[_ a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11]
(f11 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11))
(invoke
[_ a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12]
(f12 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12))
(invoke
[_ a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13]
(f13 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13))
(invoke
[_ a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14]
(f14 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14))
(invoke
[_ a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15]
(f15 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15))
(invoke
[_ a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16]
(f16 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16))
(invoke
[_ a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17]
(f17 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17))
(invoke
[_
a1
a2
a3
a4
a5
a6
a7
a8
a9
a10
a11
a12
a13
a14
a15
a16
a17
a18]
(f18
a1
a2
a3
a4
a5
a6
a7
a8
a9
a10
a11
a12
a13
a14
a15
a16
a17
a18))
(invoke
[_
a1
a2
a3
a4
a5
a6
a7
a8
a9
a10
a11
a12
a13
a14
a15
a16
a17
a18
a19]
(f19
a1
a2
a3
a4
a5
a6
a7
a8
a9
a10
a11
a12
a13
a14
a15
a16
a17
a18
a19))
IRel
(setfn
[_ arity f]
(case
arity
1
(set! f1 f)
2
(set! f2 f)
3
(set! f3 f)
4
(set! f4 f)
5
(set! f5 f)
6
(set! f6 f)
7
(set! f7 f)
8
(set! f8 f)
9
(set! f9 f)
10
(set! f10 f)
11
(set! f11 f)
12
(set! f12 f)
13
(set! f13 f)
14
(set! f14 f)
15
(set! f15 f)
16
(set! f16 f)
17
(set! f17 f)
18
(set! f18 f)
19
(set! f19 f))))
(defmacro defrel [name] (defrel-helper name 18)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment