A couple different .svg and .png versions are available here, along
with the code used to create them:
http://github.com/Chouser/clojure-classes/tree/master
For a quick link to the main graphic, you can use:
http://tinyurl.com/clojure-classes
I won't be maintaining the chart.png in the file upload area of this
group, since it's much easier to just push new versions to the github
repo. There you can also find older versions, other formats, etc.
--Chouser
Yes, the legend is misleading. Diamonds are for non-clojure
interfaces, ovals are clojure.lang.* classes and interfaces.
--Chouser
I was just following the directions on Ubuntu setup directions on
http://riddell.us/clojure/
I get the following error when I try ANTS.CLJ. Has something changed?
Peter
(defn setup
"places initial food and ants, returns seq of ant agents"
[]
>>> (sync nil
(dotimes [i food-places]
(let [p (place [(rand-int dim) (rand-int dim)])]
(alter p assoc :food (rand-int food-range))))
(doall
(for [x home-range y home-range]
(do
(alter (place [x y])
assoc :home true)
(create-ant [x y] (rand-int 8)))))))
user=> (load-file "ants.clj")
java.lang.IllegalArgumentException: recur arg for primitive local:
G__2315 must be matching primitive
clojure.lang.Compiler$CompilerException: ants.clj:61:
java.lang.IllegalArgumentException: recur arg for primitive local:
G__2315 must be matching primitive
at clojure.lang.Compiler.analyzeSeq(Compiler.java:3865)
at clojure.lang.Compiler.analyze(Compiler.java:3698)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:3848)
at clojure.lang.Compiler.analyze(Compiler.java:3698)
at clojure.lang.Compiler.analyze(Compiler.java:3671)
at clojure.lang.Compiler.access$100(Compiler.java:37)
at clojure.lang.Compiler$HostExpr$Parser.parse(Compiler.java:734)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:3858)
at clojure.lang.Compiler.analyze(Compiler.java:3698)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:3848)
at clojure.lang.Compiler.analyze(Compiler.java:3698)
at clojure.lang.Compiler.analyze(Compiler.java:3671)
at clojure.lang.Compiler.access$100(Compiler.java:37)
at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:3384)
at clojure.lang.Compiler$FnMethod.parse(Compiler.java:3231)
at clojure.lang.Compiler$FnMethod.access$1200(Compiler.java:3142)
at clojure.lang.Compiler$FnExpr.parse(Compiler.java:2766)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:3856)
at clojure.lang.Compiler.analyze(Compiler.java:3698)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:3848)
at clojure.lang.Compiler.analyze(Compiler.java:3698)
at clojure.lang.Compiler.access$200(Compiler.java:37)
at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:343)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:3858)
at clojure.lang.Compiler.analyze(Compiler.java:3698)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:3848)
at clojure.lang.Compiler.analyze(Compiler.java:3698)
at clojure.lang.Compiler.analyze(Compiler.java:3671)
at clojure.lang.Compiler.eval(Compiler.java:3895)
at clojure.lang.Compiler.load(Compiler.java:4196)
at clojure.lang.Compiler.loadFile(Compiler.java:4163)
at clojure.lang.RT$3.invoke(RT.java:289)
at user.eval__2290.invoke(Unknown Source)
at clojure.lang.Compiler.eval(Compiler.java:3891)
at clojure.lang.Repl.main(Repl.java:75)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at jline.ConsoleRunner.main(ConsoleRunner.java:69)
Caused by: java.lang.RuntimeException:
java.lang.IllegalArgumentException: recur arg for primitive local:
G__2315 must be matching primitive
at clojure.lang.Compiler$RecurExpr.emit(Compiler.java:3598)
at clojure.lang.Compiler$BodyExpr.emit(Compiler.java:3414)
at clojure.lang.Compiler$IfExpr.emit(Compiler.java:2264)
at clojure.lang.Compiler$BodyExpr.emit(Compiler.java:3414)
at clojure.lang.Compiler$LetExpr.emit(Compiler.java:3542)
at clojure.lang.Compiler$BodyExpr.emit(Compiler.java:3414)
at clojure.lang.Compiler$LetExpr.emit(Compiler.java:3534)
at clojure.lang.Compiler$BodyExpr.emit(Compiler.java:3414)
at clojure.lang.Compiler$LetExpr.emit(Compiler.java:3542)
at clojure.lang.Compiler$BodyExpr.emit(Compiler.java:3414)
at clojure.lang.Compiler$LetExpr.emit(Compiler.java:3542)
at clojure.lang.Compiler$BodyExpr.emit(Compiler.java:3411)
at clojure.lang.Compiler$FnMethod.emit(Compiler.java:3255)
at clojure.lang.Compiler$FnExpr.compile(Compiler.java:3013)
at clojure.lang.Compiler$FnExpr.parse(Compiler.java:2807)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:3856)
... 39 more
Caused by: java.lang.IllegalArgumentException: recur arg for primitive
local: G__2315 must be matching primitive
at clojure.lang.Compiler$RecurExpr.emit(Compiler.java:3593)
... 54 more
user=>
Recent Clojure from SVN and a recent download of ants.clj from the
google group seem to work fine together for me.
--Chouser
I just noticed that AtomicReference and / or AtomicReference$IRef are
missing from the Clojure type system graph.
Randall Schulz