Re: Nested identities in a value-based universe
On Oct 21, 9:04 pm, "Meikel Brandmeyer (kotarak)" wrote: > Hi, > > may I question the transitivity of state information? > > Maybe the world's state is that player "Trantor" is at position [15 34]. Now > Trantor eats an appel. The appel is removed from his inventory and his > health is raised by 5 hit points. Did the state of the world change? No. > Trantor is still at position [15 34]. Does the world have to know about the > apple in Trantors inventory and the sad state of his hit points? > > Disclaimer: I have no clue about game programming, about what information is > needed where and how this is implemented insanely fast. Just a naive > question from the distance. I think it generally makes sense to consider the entire world including Trantor and his tasty apple as part of the world state. This seems logically consistent - they are part of the world and it would seem odd if some actions like dropping an apple on the ground at [15 34] altered the world state but eating an apple didn't. It also has nice properties. you can then treat the world state as a single value that you can pass to functions etc. e.g. you could create a higher order functions to update the world with something like: ((command "Trantor" :eat "apple") world-state) The problem with identities of actors comes in when you consider code like the following: (def trantor (get-actor "Trantor" world-state)) (:hit-points trantor) => 10 (def new-world-state ((command "Trantor" :eat "apple") world-state)) (:hit-points trantor) => 10 (still!! because we took a snapshot of trantor..) (def new-trantor (get-actor "Trantor" new-world-state)) (:hit-points new-trantor) => 15 Maybe this is all fine and I'm sure it is possible to successfully write a game this way. However it does feel a little strange when you are coming from OOP languages where you are used to simulating everything with mutable state -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Nested identities in a value-based universe
> The problem with identities of actors comes in when you consider code > like the following: > > (def trantor (get-actor "Trantor" world-state)) > > (:hit-points trantor) > => 10 > > (def new-world-state ((command "Trantor" :eat "apple") world-state)) > > (:hit-points trantor) > => 10 (still!! because we took a snapshot of trantor..) > > (def new-trantor (get-actor "Trantor" new-world-state)) > > (:hit-points new-trantor) > => 15 > > Maybe this is all fine and I'm sure it is possible to successfully > write a game this way. However it does feel a little strange when you > are coming from OOP languages where you are used to simulating > everything with mutable state I think that's the issue. Expecting your def-ed trantor to change once the world state has been updated is what would be expected in a world of pointers, OOP, etc. However, the new updated world (in my view) has a new trantor which you need to extract with your (get-actor ...). This would all seem reasonable to me (modulo performance of updating the world, etc.) since then you have many functions operating on a single data structure and your flow is in terms of these functions only. Cheers, U -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Clojure 1.3 treatment of integers and longs
How can people toggle between the various commits I mentioned using Maven? Rich On Oct 23, 2011, at 9:52 PM, Stuart Sierra wrote: > As a reminder, you don't need Git to use the latest development version of > Clojure. Just set your Clojure dependency version to "1.4.0-master-SNAPSHOT" > and add Sonatype to your Maven repositories. > > Detailed instructions here: > http://dev.clojure.org/display/doc/Maven+Settings+and+Repositories > > -Stuart Sierra > clojure.com > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: clojure starter package for aichallenge ?
hmm ... last time i visited the starter_packages-page the link to clojure was inactive. howsoever ... i apologise. thanks for implementing this. no clojure-program in top chart so far ... ;-) On Oct 22, 8:46 am, Chris Granger wrote: > Hm? My starter package is there: > > http://aichallenge.org/starter_packages.php > > They changed the game at the end and I didn't have time to update it > for hills, but it actually works just fine as is. Also, it should be > fairly trivial for someone to add that bit... > > Cheers, > Chris. > > On Oct 20, 11:58 am, faenvie wrote: > > > hi clojure community, > > > at the moment there seems to be no applicable > > clojure starter package for thehttp://aichallenge.org/ > > > though some work has be done on it by chris granger, i > > think:https://github.com/ibdknox/aichallenge > > > are there any plans to get a clojure starter package out ? > > it would be nice to see clojure-programs participate in the > > challenge. > > > have a successful day -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Can Simple be done with Static Typing?
After watching Rich's talk the other day about "Making Simple Easy", I started thinking about how to incorporate parts of this talk into the software we're writing at work. During this thought process, I have begun to wonder, are simple and statically typed languages mutually exclusive? Let me explain by a simple example. In the following text, I will be using C# as my example "static" language, and Clojure as my example dynamic language. For instance, let's say we have two structures, Contact and Staff. The two are completely unrelated, except for the fact that they both have a first name, and they both are required fields: Clojure: {:first-name "Billy" :age 42 :record-type "Contact"} {:first-name "Joe" :position "manager" :record-type "Staff"} Now in Clojure, writing a validation check for this is as simple as: (not (nil? (:first-name record))) But how would we do this in C#? new Person() {firstName="Billy", age=42 }; new Contact() {firstName "Joe", Position="manager"}; Person and Contact are unrelated, so I'm left with duplicating my validation routines (once for each object), or going and making both implement IFirstName. This gets even more fun when you start taking into account generics: In C# a List cannot be casted to a List because they are considered two completely different objects. In the Clojure source code, Rich gets around most of the above issues by simply referring to everything as a object and then casting to get the type at runtime. This works fine for code that will be run in a dynamic language anyways, but makes for some ugly code when you're actually writing the static language parts: if (lst[0] is IFirstName) runFirstNameChecks(lst[0]); if (lst[0] is Person) runPersonChecks(lst[0]); However, this then requires tons of type checks and casting throughout the entire system. So yes, I understand that this is all a bit off-topic for a Clojure mailing list, but I thought it was applicable to Rich's talk. Are we getting half way to simple, simply by using Clojure in the first place? Is it possible to write simple code in a language that shuns the use of simple containers (List, Dictionary, etc.) as the primary transport system for data? If anyone has some thoughts, they are more than welcome to ponder them "out-loud" with me on this thread Timothy -- “One of the main causes of the fall of the Roman Empire was that–lacking zero–they had no way to indicate successful termination of their C programs.” (Robert Firth) -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Clojure 1.3 "wonky" behavior
Thanks for the explanation All. I have a much better grasp of what's going on now. Just one more question: It is defined behavior, or should I submit a patch for Clojure 1.3? Micah On Oct 20, 2011, at 7:55 PM, Chouser wrote: > On Thu, Oct 20, 2011 at 4:31 PM, Chris Perkins > wrote: >> Note: I forgot to preface that with "I think..." :) Upon experimenting >> briefly, it turns out I was wrong about how Clojure works (that seems to >> happen a lot with me). A declare/def defines a var even when it's not >> executed! >> user> (defn xxx [] (declare yyy)) >> #'user/xxx >> user> yyy >> # >> Well, I learned something today. > > But it only interns the Var, it doesn't fully set it up. Particularly > relevant to the OP's example is that the metadata from the name symbol > is not transferred to the Var (and the changes to the Var based on > :dynamic are not applied) until runtime for the 'def', even though the > Var exists at compile time. > > Here's a macro that expands at compile time to the *compile* time > metadata of the var named in its argument: > > (defmacro compile-time-meta [x] (meta (resolve x))) > > Now observe how it behaves differently than a runtime call to 'meta': > > (vector > (declare ^:dynamic *myvar*) > (meta #'*myvar*) > (compile-time-meta #'*myvar*))) > > The above returns: > > [#'user/*myvar* > {:ns #, :name *myvar*, :dynamic true, :declared true, ...} > {:ns #, :name #}] > > First is the Var itself. > Next is the metadata of the Var at runtime, after the entire form has > been compiled and therefore the metadata from the name has been > applied to the Var, including the :dynamic flag. > Finally we see that when our macro was expanded the Var existed but > had minimal metadata. This was after the declare was compiled but > before any part of the 'vector' form was run. There is no :dynamic > flag, and anything that depends on that flag at compile time to work > correctly (such as a function that refers the for Var) will fail to > work correctly. > > --Chouser > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Can Simple be done with Static Typing?
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 i have some (10 years) experience with difference statically typed languages and a bit with dynamic ones. i encountered a few typesafe solutions that don't introduce a lot of overhead - for example the types of scala. in addition to interfaces and classes, scala has types. a type can be an arbitrary set of field and method definitions, for example: type foo = { def x:String val y:Int } every instance that has a method x which returns a string and a field which is an int are compatible to foo. in java, you would say it is a "delayed interface". the code behaves as if someone magically attached "implements foo" to any class which would still compile. so your "(not (nil? (:first-name record)))" would work in scala if there was a type like type bar = { val firstName:String } it's implemented via reflection, but the types are checked at compile time. Am 24.10.2011 15:28, schrieb Timothy Baldridge: > After watching Rich's talk the other day about "Making Simple > Easy", I started thinking about how to incorporate parts of this > talk into the software we're writing at work. During this thought > process, I have begun to wonder, are simple and statically typed > languages mutually exclusive? > > Let me explain by a simple example. In the following text, I will > be using C# as my example "static" language, and Clojure as my > example dynamic language. > > For instance, let's say we have two structures, Contact and Staff. > The two are completely unrelated, except for the fact that they > both have a first name, and they both are required fields: > > Clojure: > > {:first-name "Billy" :age 42 :record-type "Contact"} {:first-name > "Joe" :position "manager" :record-type "Staff"} > > Now in Clojure, writing a validation check for this is as simple > as: > > (not (nil? (:first-name record))) > > But how would we do this in C#? > > new Person() {firstName="Billy", age=42 }; new Contact() {firstName > "Joe", Position="manager"}; > > Person and Contact are unrelated, so I'm left with duplicating my > validation routines (once for each object), or going and making > both implement IFirstName. This gets even more fun when you start > taking into account generics: In C# a List cannot be > casted to a List because they are considered two completely > different objects. > > In the Clojure source code, Rich gets around most of the above > issues by simply referring to everything as a object and then > casting to get the type at runtime. This works fine for code that > will be run in a dynamic language anyways, but makes for some ugly > code when you're actually writing the static language parts: > > if (lst[0] is IFirstName) runFirstNameChecks(lst[0]); if (lst[0] is > Person) runPersonChecks(lst[0]); > > However, this then requires tons of type checks and casting > throughout the entire system. > > So yes, I understand that this is all a bit off-topic for a > Clojure mailing list, but I thought it was applicable to Rich's > talk. Are we getting half way to simple, simply by using Clojure in > the first place? Is it possible to write simple code in a language > that shuns the use of simple containers (List, Dictionary, etc.) as > the primary transport system for data? > > If anyone has some thoughts, they are more than welcome to ponder > them "out-loud" with me on this thread > > Timothy > - -- -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.14 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQIcBAEBAgAGBQJOpZetAAoJENRtux+h35aGhTsP+wUYHLD0i8t4DI7P/d2A13Ca 29hIhICsxJ2IE3svctaobozaT1byzzpYq6NFfqcfdwfOJCAJBCxmrHTiTCQ09EPM jSZpxiXQSXHtYDpn2AiYA5c5Ut+TXjbWeahKjyRGrUVKjORtPHvaWGccj0b5vzYT m7QpMy7R0tzEj/w2FCIkWkjqvJeCQ3cYNC78GZ2gIHC9DQwAjeD2uKSX3RfwaD3S apEJELCYeDS08NIS26uB0ZHbo228rLlr02WaXh/+rx/MlMlEE/MEIq0aqJV59J7J A6EFqoC43LxpftJRfAJ3MHRoliC0mnGN9SoWKeRiE0i8p1g8pv1e74DpLzI/I/Pq GeR9TL688wyhnehl8VZW9AEKQVfKOujPIkKdpr4eF98eKdxHdu4xwkKi/ZgL6zCf h7/eO6QRrKsOLfztMNQsaYqpCP/pFGA2J3p4Q/oVkB2Uqa6xa0auNcY5mBSPNuZp zKcOg6/gi39eOZxFslVOvnY6ZOcILjRJYoA1VcO834NMd0A+D6lP0UM0ReBb28kg MLjhDstZC1xVShp9PVJAdMlMeNjRDOPcASQG6uCisTSGfQ7qVXBNYd/SqXyRUODn YFTSYtncEu+Pq0nRIjl1ItBmP/9saEqqJwiOpW01IAT+mFVv10tqKCxWFJKwNcLQ iolsrCZa8Yn9Tvt2hFEL =UbSd -END PGP SIGNATURE- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Rich Hickey: "Simple Made Easy" from Strange Loop 2011
On Fri, Oct 21, 2011 at 10:05 AM, Michael Forster wrote: > Yes: Was that a nil value for the key :foo in my map or did :foo not > exist? If you need to distinguish between ":foo is missing" and ":foo's value indicates non-existence", what about: (get my-map :foo ::missing) -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Railo Technologies, Inc. -- http://www.getrailo.com/ "Perfection is the enemy of the good." -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Rich Hickey: "Simple Made Easy" from Strange Loop 2011
Or: (if-let [[_ v] (find my-map key)] v :something-else) On Tue, Oct 25, 2011 at 1:19 AM, Sean Corfield wrote: > On Fri, Oct 21, 2011 at 10:05 AM, Michael Forster > wrote: > > Yes: Was that a nil value for the key :foo in my map or did :foo not > > exist? > > If you need to distinguish between ":foo is missing" and ":foo's value > indicates non-existence", what about: > > (get my-map :foo ::missing) > -- > Sean A Corfield -- (904) 302-SEAN > An Architect's View -- http://corfield.org/ > World Singles, LLC. -- http://worldsingles.com/ > Railo Technologies, Inc. -- http://www.getrailo.com/ > > "Perfection is the enemy of the good." > -- Gustave Flaubert, French realist novelist (1821-1880) > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Clojure 1.3 treatment of integers and longs
;; lein for all 3 commits [org.clojure/clojure "1.4.0-master-20111023.210239-5"] and I imagine you can do something similar with maven, the main thing is you need to add the sonatype snapshot repo. but you can't access individual commits because the build machine polls and gathers the latest commits together and does a build. and the readme.txt has build instructions for ant and maven for those who don't know how to build clojure from git. On Mon, Oct 24, 2011 at 4:04 AM, Rich Hickey wrote: > How can people toggle between the various commits I mentioned using Maven? > > Rich > > On Oct 23, 2011, at 9:52 PM, Stuart Sierra wrote: > >> As a reminder, you don't need Git to use the latest development version of >> Clojure. Just set your Clojure dependency version to "1.4.0-master-SNAPSHOT" >> and add Sonatype to your Maven repositories. >> >> Detailed instructions here: >> http://dev.clojure.org/display/doc/Maven+Settings+and+Repositories >> >> -Stuart Sierra >> clojure.com >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clojure@googlegroups.com >> Note that posts from new members are moderated - please be patient with your >> first post. >> To unsubscribe from this group, send email to >> clojure+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/clojure?hl=en > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en -- And what is good, Phaedrus, And what is not good— Need we ask anyone to tell us these things? -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Confusing interplay between macros and metadata
I'm struggling with a basic feature of how macros behave. I understand how the problem arises, and I can cobble together my own fix in the specific places where it's causing me trouble, but it seems like a prettier, more general solution would be desirable. Below is a brief transcript demonstrating the problem. user> (defmacro call [f arg] `(~f ~arg)) #'user/call user> (let [f inc] (.intValue (f 10))) Reflection warning, NO_SOURCE_FILE:1 - reference to field intValue can't be resolved. 11 user> (let [f inc] (.intValue ^Integer (f 10))) 11 user> (let [f inc] (.intValue ^Integer (call f 10))) Reflection warning, NO_SOURCE_FILE:1 - reference to field intValue can't be resolved. 11 I want to typehint the return value of f, so I put metadata on the form representing a call to it. But if a macro gets involved, there's an "intervening" form that ignores its metadata and returns a new list of '(f 10) with no metadata. Thus the compiler has no idea I ever wanted to give it a hint about the type. There are two solutions that are simple enough for me to apply: (1) At the call site I can bind the result of (call f 10) to a local named i and then put the typehinting metadata on that (2) I can edit the call macro to return a form with the right metadata: (defmacro call [f arg] (with-meta `(~f ~arg) (meta &form))) Both of these work, but they seem awful. If the language specifies you're supposed to be able to typehint expressions as well as named bindings, it's both unintuitive and quite inconvenient that most macros do not "respect" this behavior by default. And many macros I don't have enough control over to make this change. For example, the whole issue arose when I was trying to hint the result of a (for ...) as a java.util.List. It ignores my metadata and returns a new form; and I certainly can't go edit its source, so instead I have to bind the result in a let, for no reason other than to typehint it. It seems to me that it would be nice to have macros automatically include, on their result forms, the metadata from their input &form. Of course, macros may wish to add metadata as well, so the two maps should probably be merged. However, there are certainly some problems with this approach: for example if a macro wants to return something that can't suppport metadata (like an Integer), the compiler needs to be careful not to try to include it. So I'm hoping the community can comment on whether this feature would be useful, or whether there are fundamental problems with it that I haven't foreseen. Is there a reason this can't make it into a future version of Clojure? -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Quick Practical Clojure macro question
Hi everyone, I'm working my way through Practical Clojure's macro chapter, and I'd like to check my understanding about one of the examples. The book discusses writing a macro to randomly evaluate a form out of a list of forms--essentially a cond that randomly selects which branch to evaluate. The book's version looks like this: (defmacro rand-expr-multi [& exprs] `(let [ct# ~(count exprs)] (case (rand-int ct#) ~@(interleave (range (count exprs)) exprs My version looks like this: (defmacro rand-expr-mulit [& exprs] (let [n (rand-int (count exprs))] (nth exprs n))) Is there any difference between the two? I'm a little shaky on macro expansion-time vs run-time, hygiene, etc. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Quick Practical Clojure macro question
Yes, definitely. Your version selects which form to evaluated once, at compile time; the original selects a form every time the expansion is evaluated. user> (defn rand-num [] (rand-expr-mulit 1 2 3 4 5 6 7 8 9)) #'user/rand-num user> (rand-num) 7 user> (rand-num) 7 user> (rand-num) 7 user> (rand-num) 7 Instead, you need to make sure the call to rand-int is in the code you return, rather than in the logic the macro uses to decide what code to return. On Oct 24, 12:17 pm, Alan O'Donnell wrote: > Hi everyone, > > I'm working my way through Practical Clojure's macro chapter, and I'd like > to check my understanding about one of the examples. > > The book discusses writing a macro to randomly evaluate a form out of a list > of forms--essentially a cond that randomly selects which branch to evaluate. > > The book's version looks like this: > > (defmacro rand-expr-multi [& exprs] > > `(let [ct# ~(count exprs)] > > (case (rand-int ct#) > > ~@(interleave (range (count exprs)) exprs > > My version looks like this: > > (defmacro rand-expr-mulit [& exprs] > > (let [n (rand-int (count exprs))] > > (nth exprs n))) > > Is there any difference between the two? I'm a little shaky on macro > expansion-time vs run-time, hygiene, etc. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Confusing interplay between macros and metadata
it's not a macro issue, it's a syntax quote issue On Mon, Oct 24, 2011 at 11:54 AM, Alan Malloy wrote: > I'm struggling with a basic feature of how macros behave. I understand > how the > problem arises, and I can cobble together my own fix in the specific > places > where it's causing me trouble, but it seems like a prettier, more > general > solution would be desirable. Below is a brief transcript demonstrating > the > problem. > > user> (defmacro call [f arg] `(~f ~arg)) > #'user/call > user> (let [f inc] (.intValue (f 10))) > Reflection warning, NO_SOURCE_FILE:1 - reference to field intValue > can't be resolved. > 11 > user> (let [f inc] (.intValue ^Integer (f 10))) > 11 > user> (let [f inc] (.intValue ^Integer (call f 10))) > Reflection warning, NO_SOURCE_FILE:1 - reference to field intValue > can't be resolved. > 11 > > I want to typehint the return value of f, so I put metadata on the > form > representing a call to it. But if a macro gets involved, there's an > "intervening" form that ignores its metadata and returns a new list of > '(f 10) > with no metadata. Thus the compiler has no idea I ever wanted to give > it a hint > about the type. > > There are two solutions that are simple enough for me to apply: > > (1) At the call site I can bind the result of (call f 10) to a local > named i and > then put the typehinting metadata on that > > (2) I can edit the call macro to return a form with the right > metadata: > (defmacro call [f arg] (with-meta `(~f ~arg) (meta &form))) > > Both of these work, but they seem awful. If the language specifies > you're > supposed to be able to typehint expressions as well as named bindings, > it's both > unintuitive and quite inconvenient that most macros do not "respect" > this > behavior by default. And many macros I don't have enough control over > to make > this change. For example, the whole issue arose when I was trying to > hint the > result of a (for ...) as a java.util.List. It ignores my metadata and > returns a > new form; and I certainly can't go edit its source, so instead I have > to bind > the result in a let, for no reason other than to typehint it. > > It seems to me that it would be nice to have macros automatically > include, on > their result forms, the metadata from their input &form. Of course, > macros may > wish to add metadata as well, so the two maps should probably be > merged. However, there are certainly some problems with this approach: > for > example if a macro wants to return something that can't suppport > metadata (like > an Integer), the compiler needs to be careful not to try to include > it. So I'm > hoping the community can comment on whether this feature would be > useful, or > whether there are fundamental problems with it that I haven't > foreseen. Is there > a reason this can't make it into a future version of Clojure? > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > -- And what is good, Phaedrus, And what is not good— Need we ask anyone to tell us these things? -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Confusing interplay between macros and metadata
I'm not sure I buy that. If I write my macro as (defmacro call [f arg] (list f arg)), which I did consider doing for this post, the same thing happens. Perhaps you could explain what you mean? On Oct 24, 12:37 pm, Kevin Downey wrote: > it's not a macro issue, it's a syntax quote issue > > > > > > > > > > On Mon, Oct 24, 2011 at 11:54 AM, Alan Malloy wrote: > > I'm struggling with a basic feature of how macros behave. I understand > > how the > > problem arises, and I can cobble together my own fix in the specific > > places > > where it's causing me trouble, but it seems like a prettier, more > > general > > solution would be desirable. Below is a brief transcript demonstrating > > the > > problem. > > > user> (defmacro call [f arg] `(~f ~arg)) > > #'user/call > > user> (let [f inc] (.intValue (f 10))) > > Reflection warning, NO_SOURCE_FILE:1 - reference to field intValue > > can't be resolved. > > 11 > > user> (let [f inc] (.intValue ^Integer (f 10))) > > 11 > > user> (let [f inc] (.intValue ^Integer (call f 10))) > > Reflection warning, NO_SOURCE_FILE:1 - reference to field intValue > > can't be resolved. > > 11 > > > I want to typehint the return value of f, so I put metadata on the > > form > > representing a call to it. But if a macro gets involved, there's an > > "intervening" form that ignores its metadata and returns a new list of > > '(f 10) > > with no metadata. Thus the compiler has no idea I ever wanted to give > > it a hint > > about the type. > > > There are two solutions that are simple enough for me to apply: > > > (1) At the call site I can bind the result of (call f 10) to a local > > named i and > > then put the typehinting metadata on that > > > (2) I can edit the call macro to return a form with the right > > metadata: > > (defmacro call [f arg] (with-meta `(~f ~arg) (meta &form))) > > > Both of these work, but they seem awful. If the language specifies > > you're > > supposed to be able to typehint expressions as well as named bindings, > > it's both > > unintuitive and quite inconvenient that most macros do not "respect" > > this > > behavior by default. And many macros I don't have enough control over > > to make > > this change. For example, the whole issue arose when I was trying to > > hint the > > result of a (for ...) as a java.util.List. It ignores my metadata and > > returns a > > new form; and I certainly can't go edit its source, so instead I have > > to bind > > the result in a let, for no reason other than to typehint it. > > > It seems to me that it would be nice to have macros automatically > > include, on > > their result forms, the metadata from their input &form. Of course, > > macros may > > wish to add metadata as well, so the two maps should probably be > > merged. However, there are certainly some problems with this approach: > > for > > example if a macro wants to return something that can't suppport > > metadata (like > > an Integer), the compiler needs to be careful not to try to include > > it. So I'm > > hoping the community can comment on whether this feature would be > > useful, or > > whether there are fundamental problems with it that I haven't > > foreseen. Is there > > a reason this can't make it into a future version of Clojure? > > > -- > > You received this message because you are subscribed to the Google > > Groups "Clojure" group. > > To post to this group, send email to clojure@googlegroups.com > > Note that posts from new members are moderated - please be patient with > > your first post. > > To unsubscribe from this group, send email to > > clojure+unsubscr...@googlegroups.com > > For more options, visit this group at > >http://groups.google.com/group/clojure?hl=en > > -- > And what is good, Phaedrus, > And what is not good— > Need we ask anyone to tell us these things? -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Confusing interplay between macros and metadata
syntax quote effectively does that it, it rewrites your forms as a series of calls to various sequence functions like concat and in the shuffling it loses metadata. On Mon, Oct 24, 2011 at 12:43 PM, Alan Malloy wrote: > I'm not sure I buy that. If I write my macro as (defmacro call [f arg] > (list f arg)), which I did consider doing for this post, the same > thing happens. Perhaps you could explain what you mean? > > On Oct 24, 12:37 pm, Kevin Downey wrote: >> it's not a macro issue, it's a syntax quote issue >> >> >> >> >> >> >> >> >> >> On Mon, Oct 24, 2011 at 11:54 AM, Alan Malloy wrote: >> > I'm struggling with a basic feature of how macros behave. I understand >> > how the >> > problem arises, and I can cobble together my own fix in the specific >> > places >> > where it's causing me trouble, but it seems like a prettier, more >> > general >> > solution would be desirable. Below is a brief transcript demonstrating >> > the >> > problem. >> >> > user> (defmacro call [f arg] `(~f ~arg)) >> > #'user/call >> > user> (let [f inc] (.intValue (f 10))) >> > Reflection warning, NO_SOURCE_FILE:1 - reference to field intValue >> > can't be resolved. >> > 11 >> > user> (let [f inc] (.intValue ^Integer (f 10))) >> > 11 >> > user> (let [f inc] (.intValue ^Integer (call f 10))) >> > Reflection warning, NO_SOURCE_FILE:1 - reference to field intValue >> > can't be resolved. >> > 11 >> >> > I want to typehint the return value of f, so I put metadata on the >> > form >> > representing a call to it. But if a macro gets involved, there's an >> > "intervening" form that ignores its metadata and returns a new list of >> > '(f 10) >> > with no metadata. Thus the compiler has no idea I ever wanted to give >> > it a hint >> > about the type. >> >> > There are two solutions that are simple enough for me to apply: >> >> > (1) At the call site I can bind the result of (call f 10) to a local >> > named i and >> > then put the typehinting metadata on that >> >> > (2) I can edit the call macro to return a form with the right >> > metadata: >> > (defmacro call [f arg] (with-meta `(~f ~arg) (meta &form))) >> >> > Both of these work, but they seem awful. If the language specifies >> > you're >> > supposed to be able to typehint expressions as well as named bindings, >> > it's both >> > unintuitive and quite inconvenient that most macros do not "respect" >> > this >> > behavior by default. And many macros I don't have enough control over >> > to make >> > this change. For example, the whole issue arose when I was trying to >> > hint the >> > result of a (for ...) as a java.util.List. It ignores my metadata and >> > returns a >> > new form; and I certainly can't go edit its source, so instead I have >> > to bind >> > the result in a let, for no reason other than to typehint it. >> >> > It seems to me that it would be nice to have macros automatically >> > include, on >> > their result forms, the metadata from their input &form. Of course, >> > macros may >> > wish to add metadata as well, so the two maps should probably be >> > merged. However, there are certainly some problems with this approach: >> > for >> > example if a macro wants to return something that can't suppport >> > metadata (like >> > an Integer), the compiler needs to be careful not to try to include >> > it. So I'm >> > hoping the community can comment on whether this feature would be >> > useful, or >> > whether there are fundamental problems with it that I haven't >> > foreseen. Is there >> > a reason this can't make it into a future version of Clojure? >> >> > -- >> > You received this message because you are subscribed to the Google >> > Groups "Clojure" group. >> > To post to this group, send email to clojure@googlegroups.com >> > Note that posts from new members are moderated - please be patient with >> > your first post. >> > To unsubscribe from this group, send email to >> > clojure+unsubscr...@googlegroups.com >> > For more options, visit this group at >> >http://groups.google.com/group/clojure?hl=en >> >> -- >> And what is good, Phaedrus, >> And what is not good— >> Need we ask anyone to tell us these things? > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > -- And what is good, Phaedrus, And what is not good— Need we ask anyone to tell us these things? -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups
Re: Confusing interplay between macros and metadata
That would be relevant if I were talking about losing metadata on arguments to the macro, say like (call .length ^String (identity "test")). But I'm talking about metadata on &form - syntax-quote never sees that at all, so there's nothing for it to lose. On Oct 24, 12:50 pm, Kevin Downey wrote: > syntax quote effectively does that it, it rewrites your forms as a > series of calls to various sequence functions like concat and in the > shuffling it loses metadata. > > > > > > > > > > On Mon, Oct 24, 2011 at 12:43 PM, Alan Malloy wrote: > > I'm not sure I buy that. If I write my macro as (defmacro call [f arg] > > (list f arg)), which I did consider doing for this post, the same > > thing happens. Perhaps you could explain what you mean? > > > On Oct 24, 12:37 pm, Kevin Downey wrote: > >> it's not a macro issue, it's a syntax quote issue > > >> On Mon, Oct 24, 2011 at 11:54 AM, Alan Malloy wrote: > >> > I'm struggling with a basic feature of how macros behave. I understand > >> > how the > >> > problem arises, and I can cobble together my own fix in the specific > >> > places > >> > where it's causing me trouble, but it seems like a prettier, more > >> > general > >> > solution would be desirable. Below is a brief transcript demonstrating > >> > the > >> > problem. > > >> > user> (defmacro call [f arg] `(~f ~arg)) > >> > #'user/call > >> > user> (let [f inc] (.intValue (f 10))) > >> > Reflection warning, NO_SOURCE_FILE:1 - reference to field intValue > >> > can't be resolved. > >> > 11 > >> > user> (let [f inc] (.intValue ^Integer (f 10))) > >> > 11 > >> > user> (let [f inc] (.intValue ^Integer (call f 10))) > >> > Reflection warning, NO_SOURCE_FILE:1 - reference to field intValue > >> > can't be resolved. > >> > 11 > > >> > I want to typehint the return value of f, so I put metadata on the > >> > form > >> > representing a call to it. But if a macro gets involved, there's an > >> > "intervening" form that ignores its metadata and returns a new list of > >> > '(f 10) > >> > with no metadata. Thus the compiler has no idea I ever wanted to give > >> > it a hint > >> > about the type. > > >> > There are two solutions that are simple enough for me to apply: > > >> > (1) At the call site I can bind the result of (call f 10) to a local > >> > named i and > >> > then put the typehinting metadata on that > > >> > (2) I can edit the call macro to return a form with the right > >> > metadata: > >> > (defmacro call [f arg] (with-meta `(~f ~arg) (meta &form))) > > >> > Both of these work, but they seem awful. If the language specifies > >> > you're > >> > supposed to be able to typehint expressions as well as named bindings, > >> > it's both > >> > unintuitive and quite inconvenient that most macros do not "respect" > >> > this > >> > behavior by default. And many macros I don't have enough control over > >> > to make > >> > this change. For example, the whole issue arose when I was trying to > >> > hint the > >> > result of a (for ...) as a java.util.List. It ignores my metadata and > >> > returns a > >> > new form; and I certainly can't go edit its source, so instead I have > >> > to bind > >> > the result in a let, for no reason other than to typehint it. > > >> > It seems to me that it would be nice to have macros automatically > >> > include, on > >> > their result forms, the metadata from their input &form. Of course, > >> > macros may > >> > wish to add metadata as well, so the two maps should probably be > >> > merged. However, there are certainly some problems with this approach: > >> > for > >> > example if a macro wants to return something that can't suppport > >> > metadata (like > >> > an Integer), the compiler needs to be careful not to try to include > >> > it. So I'm > >> > hoping the community can comment on whether this feature would be > >> > useful, or > >> > whether there are fundamental problems with it that I haven't > >> > foreseen. Is there > >> > a reason this can't make it into a future version of Clojure? > > >> > -- > >> > You received this message because you are subscribed to the Google > >> > Groups "Clojure" group. > >> > To post to this group, send email to clojure@googlegroups.com > >> > Note that posts from new members are moderated - please be patient with > >> > your first post. > >> > To unsubscribe from this group, send email to > >> > clojure+unsubscr...@googlegroups.com > >> > For more options, visit this group at > >> >http://groups.google.com/group/clojure?hl=en > > >> -- > >> And what is good, Phaedrus, > >> And what is not good— > >> Need we ask anyone to tell us these things? > > > -- > > You received this message because you are subscribed to the Google > > Groups "Clojure" group. > > To post to this group, send email to clojure@googlegroups.com > > Note that posts from new members are moderated - please be patient with > > your first post. > > To unsubscribe from this group, send email to > > clojure+unsubscr...@googlegroups.com > > For more options, visit this grou
Re: Quick Practical Clojure macro question
Ah, got it. Your last sentence is very well-put! -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Clojure 1.3 "wonky" behavior
> Just one more question: It is defined behavior, or should I submit a patch > for Clojure 1.3? > > Micah What exactly would the patch do? Stu -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Clojure 1.3 "wonky" behavior
On Oct 24, 2011, at 3:22 PM, Stuart Halloway wrote: >> Just one more question: Is it defined behavior, or should I submit a patch >> for Clojure 1.3? >> >> Micah > > What exactly would the patch do? The patch would pass the following test: (list (declare ^:dynamic p) (defn q [] @p)) (should= 10 (binding [p (atom 10)] (q))) Implementation: I have little experience with the Clojure code base, but I would attempt the following approaches: * fully evaluate def/declare forms as they are read, similar to the way root level (and do) forms are evaluated immediately. * figure out what changed between versions 1.2 and 1.3 that caused the behavior difference * git-bisect the Clojure repo on the above test case ??? Stu, based on your question, I'm sensing that the behavior is in the "undefined" realm…. thoughts? Micah -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: clojure starter package for aichallenge ?
I tried submitting the started package and it crashed as hills weren't implemented. I have patched the starter package to include hills (although I suspect I'm doing the wrong thing; I blindly copied the behaviour of keeping track of the coords for hills too). The code resides in: https://github.com/ulises/ai-challenge PS: I just submitted it and it passed all tests. U -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Can Simple be done with Static Typing?
More about Scala: http://www.slideshare.net/El_Picador/scala-vs-ruby -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: trouble setting up emacs
I've gotten as far as changing to a directory with a project.clj and execute C-c C-j C-i I see this in my *swank* buffer: Process swank exited abnormally with code 127 sh: line 1: lein: command not found lein is on my search path (in ~/bin). Where do I update things so that it is on the path for the Swank process? On Tue, Oct 18, 2011 at 4:07 AM, MarisO wrote: > run this script in your .emacs.d directory > > -- > #!/bin/sh > > git clone https://github.com/technomancy/clojure-mode.git > wget -P paredit http://mumble.net/~campbell/emacs/paredit.el > > wget > http://download.savannah.gnu.org/releases/color-theme/color-theme-6.6.0.tar.gz > mkdir color-theme > tar --strip-components=1 --directory=color-theme -xzf color- > theme-6.6.0.tar.gz > > rm color-theme-6.6.0.tar.gz > -- > > > init.el > > -- > (add-to-list 'load-path "~/.emacs.d/") > > ;; clojure-mode > (add-to-list 'load-path "~/.emacs.d/clojure-mode") > (require 'clojure-mode) > > (fset 'compile-and-goto-repl "\C-x\C-s\C-c\C-k\C-c\C-z") > > (global-set-key (kbd "C-c C-g C-r") 'compile-and-goto-repl) > (global-set-key (kbd "C-c C-j C-i") 'clojure-jack-in) > > ;; paredit > (add-to-list 'load-path "~/.emacs.d/paredit") > (require 'paredit) > > (add-hook 'clojure-mode-hook 'enable-paredit-mode) > > (global-set-key (kbd "M-p M-m e") 'enable-paredit-mode) > (global-set-key (kbd "M-p M-m d") 'disable-paredit-mode) > > ;; color theme > (add-to-list 'load-path "~/.emacs.d/color-theme") > (require 'color-theme) > > (eval-after-load "color-theme" > '(progn > (color-theme-initialize))) > > -- > > > > Start emacs, change current directory (M-x cd) to a leiningen project > root and press C-c C-j C-i. It should start clojure repl. > You will need swank as dev dependency. > > :dev-dependencies [[swank-clojure "1.3.1"] > [midje "1.1.1"]] > > > > hth, > Maris > > > > On Oct 18, 4:32 am, Bruce Gordon wrote: >> I am trying to follow the directions >> athttp://dev.clojure.org/display/doc/Getting+Started+with+Emacs. >> 1. I want to install the Emacs Starter Kit. The directions >> athttp://dev.clojure.org/display/doc/Getting+Started+with+Emacsmention >> "GNU Emacs 23 or 24 is recommended", however >> https://github.com/technomancy/emacs-starter-kit >> says "You'll need Emacs 24". The directions say "precompiled versions >> are readily available for Debian-based systems...". I'm using a Debian >> based system. so I went tohttp://emacs.naquadah.org/. >> a. I executed> wget -q -O -http://emacs.naquadah.org/key.gpg| sudo >> apt-key add - >> b. I'm now confused as to which version I want: Stable? If so I should >> then follow the directions to add 2 lines to /etc/apt/sources.list, >> and then what do I do? >> >> 2. Once I get emacs 24 installed, the directions sort of leave off >> with " In both cases, you need to launch a Clojure instance with the >> correct classpath settings. This is most commonly done using a build >> tool such as Leiningen. For instructions see the Build Tools section >> of Getting Started." Going >> tohttp://dev.clojure.org/display/doc/Getting+Started >> and perusing the Build Tools doesn't explain how to setup and launch a >> Clojure instance. I see some explanations >> athttp://blog.bensmann.com/setting-up-a-clojure-development-environment >> but don't know if that includes some obsolete directions. >> >> thanks, -Bruce > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en -- Howard M. Lewis Ship Creator of Apache Tapestry The source for Tapestry training, mentoring and support. Contact me to learn how I can get you up and productive in Tapestry fast! (971) 678-5210 http://howardlewisship.com -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: trouble setting up emacs
some kind soul gave me this on the mailing list a while ago, works for me: ;; fix the PATH variable (defun set-exec-path-from-shell-PATH () (let ((path-from-shell (shell-command-to-string "$SHELL -i -c 'echo $PATH'"))) (setenv "PATH" path-from-shell) (setq exec-path (split-string path-from-shell path-separator (if window-system (set-exec-path-from-shell-PATH)) shove that in your init.el or wherever you are putting your customisations. it adds your shell path to emacs path and should enable emacs to find lein. On Mon, Oct 24, 2011 at 6:28 PM, Howard Lewis Ship wrote: > I've gotten as far as changing to a directory with a project.clj and > execute C-c C-j C-i > > I see this in my *swank* buffer: > > > Process swank exited abnormally with code 127 > sh: line 1: lein: command not found > > > lein is on my search path (in ~/bin). Where do I update things so > that it is on the path for the Swank process? > > On Tue, Oct 18, 2011 at 4:07 AM, MarisO wrote: >> run this script in your .emacs.d directory >> >> -- >> #!/bin/sh >> >> git clone https://github.com/technomancy/clojure-mode.git >> wget -P paredit http://mumble.net/~campbell/emacs/paredit.el >> >> wget >> http://download.savannah.gnu.org/releases/color-theme/color-theme-6.6.0.tar.gz >> mkdir color-theme >> tar --strip-components=1 --directory=color-theme -xzf color- >> theme-6.6.0.tar.gz >> >> rm color-theme-6.6.0.tar.gz >> -- >> >> >> init.el >> >> -- >> (add-to-list 'load-path "~/.emacs.d/") >> >> ;; clojure-mode >> (add-to-list 'load-path "~/.emacs.d/clojure-mode") >> (require 'clojure-mode) >> >> (fset 'compile-and-goto-repl "\C-x\C-s\C-c\C-k\C-c\C-z") >> >> (global-set-key (kbd "C-c C-g C-r") 'compile-and-goto-repl) >> (global-set-key (kbd "C-c C-j C-i") 'clojure-jack-in) >> >> ;; paredit >> (add-to-list 'load-path "~/.emacs.d/paredit") >> (require 'paredit) >> >> (add-hook 'clojure-mode-hook 'enable-paredit-mode) >> >> (global-set-key (kbd "M-p M-m e") 'enable-paredit-mode) >> (global-set-key (kbd "M-p M-m d") 'disable-paredit-mode) >> >> ;; color theme >> (add-to-list 'load-path "~/.emacs.d/color-theme") >> (require 'color-theme) >> >> (eval-after-load "color-theme" >> '(progn >> (color-theme-initialize))) >> >> -- >> >> >> >> Start emacs, change current directory (M-x cd) to a leiningen project >> root and press C-c C-j C-i. It should start clojure repl. >> You will need swank as dev dependency. >> >> :dev-dependencies [[swank-clojure "1.3.1"] >> [midje "1.1.1"]] >> >> >> >> hth, >> Maris >> >> >> >> On Oct 18, 4:32 am, Bruce Gordon wrote: >>> I am trying to follow the directions >>> athttp://dev.clojure.org/display/doc/Getting+Started+with+Emacs. >>> 1. I want to install the Emacs Starter Kit. The directions >>> athttp://dev.clojure.org/display/doc/Getting+Started+with+Emacsmention >>> "GNU Emacs 23 or 24 is recommended", however >>> https://github.com/technomancy/emacs-starter-kit >>> says "You'll need Emacs 24". The directions say "precompiled versions >>> are readily available for Debian-based systems...". I'm using a Debian >>> based system. so I went tohttp://emacs.naquadah.org/. >>> a. I executed> wget -q -O -http://emacs.naquadah.org/key.gpg| sudo >>> apt-key add - >>> b. I'm now confused as to which version I want: Stable? If so I should >>> then follow the directions to add 2 lines to /etc/apt/sources.list, >>> and then what do I do? >>> >>> 2. Once I get emacs 24 installed, the directions sort of leave off >>> with " In both cases, you need to launch a Clojure instance with the >>> correct classpath settings. This is most commonly done using a build >>> tool such as Leiningen. For instructions see the Build Tools section >>> of Getting Started." Going >>> tohttp://dev.clojure.org/display/doc/Getting+Started >>> and perusing the Build Tools doesn't explain how to setup and launch a >>> Clojure instance. I see some explanations >>> athttp://blog.bensmann.com/setting-up-a-clojure-development-environment >>> but don't know if that includes some obsolete directions. >>> >>> thanks, -Bruce >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clojure@googlegroups.com >> Note that posts from new members are moderated - please be patient with your >> first post. >> To unsubscribe from this group, send email to >> clojure+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/clojure?hl=en > > > > -- > Howard M. Lewis Ship > > Creator of Apache Tapestry > > The source for Tapestry training, mentoring and support. Contact me to > learn how I can get you up and productive in Tapestry fast! > > (971) 678-5210 > http://howardlewisship.com > > -- > Yo
Re: trouble setting up emacs
On Mon, Oct 24, 2011 at 4:28 PM, Howard Lewis Ship wrote: > lein is on my search path (in ~/bin). Where do I update things so > that it is on the path for the Swank process? In Mac OS X, usually programs that are launched from the GUI don't get their environment variables (like $PATH) set correctly. Supposedly there's a fix, but it involves editing a file called plist.xml, so I have a hard time recommending it with a clear conscience. -Phil -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: trouble setting up emacs
This was helpful: http://www.emacswiki.org/emacs/MacOSTweaks#toc14 I added the following to my init.el: (setenv "PATH" (concat (getenv "PATH") ":~/bin")) (setq exec-path (append exec-path `("~/bin"))) Seems like I could have used (add-to-list 'exec-path "~/bin") for the second line, is that right? In any case, my next step is to see if Swank is working (it would help if I knew what Swank was supposed to do!) On Mon, Oct 24, 2011 at 4:33 PM, Phil Hagelberg wrote: > On Mon, Oct 24, 2011 at 4:28 PM, Howard Lewis Ship wrote: >> lein is on my search path (in ~/bin). Where do I update things so >> that it is on the path for the Swank process? > > In Mac OS X, usually programs that are launched from the GUI don't get > their environment variables (like $PATH) set correctly. Supposedly > there's a fix, but it involves editing a file called plist.xml, so I > have a hard time recommending it with a clear conscience. > > -Phil > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en -- Howard M. Lewis Ship Creator of Apache Tapestry The source for Tapestry training, mentoring and support. Contact me to learn how I can get you up and productive in Tapestry fast! (971) 678-5210 http://howardlewisship.com -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: trouble setting up emacs
So Swank appears to be running, but when I edit a Clojure file and hit C-x C-e I get an error: Symbol's function definition is void: lisp-eval-last-sexp I also see this in my *messages* buffer: error in process filter: require: Symbol's value as variable is void: slime-clj Any ideas ... even on where to start? On Mon, Oct 24, 2011 at 4:55 PM, Howard Lewis Ship wrote: > This was helpful: > > http://www.emacswiki.org/emacs/MacOSTweaks#toc14 > > I added the following to my init.el: > > (setenv "PATH" (concat (getenv "PATH") ":~/bin")) > (setq exec-path (append exec-path `("~/bin"))) > > > Seems like I could have used (add-to-list 'exec-path "~/bin") for the > second line, is that right? > > In any case, my next step is to see if Swank is working (it would help > if I knew what Swank was supposed to do!) > > On Mon, Oct 24, 2011 at 4:33 PM, Phil Hagelberg wrote: >> On Mon, Oct 24, 2011 at 4:28 PM, Howard Lewis Ship wrote: >>> lein is on my search path (in ~/bin). Where do I update things so >>> that it is on the path for the Swank process? >> >> In Mac OS X, usually programs that are launched from the GUI don't get >> their environment variables (like $PATH) set correctly. Supposedly >> there's a fix, but it involves editing a file called plist.xml, so I >> have a hard time recommending it with a clear conscience. >> >> -Phil >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clojure@googlegroups.com >> Note that posts from new members are moderated - please be patient with your >> first post. >> To unsubscribe from this group, send email to >> clojure+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/clojure?hl=en > > > > -- > Howard M. Lewis Ship > > Creator of Apache Tapestry > > The source for Tapestry training, mentoring and support. Contact me to > learn how I can get you up and productive in Tapestry fast! > > (971) 678-5210 > http://howardlewisship.com > -- Howard M. Lewis Ship Creator of Apache Tapestry The source for Tapestry training, mentoring and support. Contact me to learn how I can get you up and productive in Tapestry fast! (971) 678-5210 http://howardlewisship.com -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Clojure 1.3 "wonky" behavior
You should use 'do' for that kind of thing, not list. Rich On Oct 20, 2011, at 1:53 PM, Micah Martin wrote: > I recently tried to get Speclj running on Clojure 1.3 and came across the > following problem: > > (list > (declare ^:dynamic p) > (defn q [] @p)) > > (binding [p (atom 10)] > (q)) > >> java.lang.ClassCastException: clojure.lang.Var$Unbound cannot be cast to >> clojure.lang.IDeref > > Thanks to @cemerick for helping me condense the snippet, and thanks to both > @cemerick and @chouser for the lively discussion on IRC. Yet the discussion > was inconclusive. Is the above expected behavior? > > Micah > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Nested identities in a value-based universe
> I think that's the issue. Expecting your def-ed trantor to change once > the world state has been updated is what would be expected in a world > of pointers, OOP, etc. However, the new updated world (in my view) has > a new trantor which you need to extract with your (get-actor ...). > > This would all seem reasonable to me (modulo performance of updating > the world, etc.) since then you have many functions operating on a > single data structure and your flow is in terms of these functions > only. Meta-physics aside, if you have a single threaded app then a single lump of data is all you need. Each epoch follows the last along the single thread of execution, calculated at the CPU's leisure using the input state. If, on the other hand, you wish to run multiple threads, that you need to deal with concurrent updates and this is when Clojure's concurrency constructs come into play. How you actually partition the data behind refs or actors depends on the problem domain and the structure of your data; the refs and actors etc define your units of concurrent change. For an example you could look at the ants demo. Alasdair -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Bug in keyword handling?
> this: There may be situations, now or in the future, where it is desirable > to create Keywords containing non-`read`able characters. Therefore, don't > use Keywords for things that may contain non-`read`able characters if you > want to print and read them. > > -Stuart Sierra > clojure.com Stuart, so it's a known quirk - thanks for this. Alasdair -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Get key from map
Hi! Since both (:a {:a 1 :b 2}) and ({:a 1 :b 2} :a) return the correct value, is there any difference between the two? What is the preferred form? Thanks. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Clojure 1.3 treatment of integers and longs
You can't jump around at a per-commit level (unless there's one build for each commit) but you can jump around among individual builds. You can see a list of all completed builds on our Hudson server: http://build.clojure.org/view/Clojure/job/clojure/ The "module builds" pages show the Git commit messages and corresponding snapshot version number: http://build.clojure.org/view/Clojure/job/clojure/318/org.clojure$clojure/ With Git post-commit hooks, we could theoretically ensure there is always a snapshot build corresponding to each commit. -S -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Get key from map
http://stackoverflow.com/q/7034803/625403 On Oct 24, 2:58 pm, pistacchio wrote: > Hi! Since both (:a {:a 1 :b 2}) and ({:a 1 :b 2} :a) return the > correct value, is there any difference between the two? What is the > preferred form? > > Thanks. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: aquamacs, slime and clojure on OS X
Confirm, as Jake said it is enough to delete the folder /Library/Application Support/Aquamacs Emacs/SLIME/; my problem was probably derived from having previously installed also Aquamacs-SLIME-2011-xxx.pkg.tgz, the SLIME plugin from http://aquamacs.org/download.shtml. (Lein's swank plugin uses an embedded slime.el - check swank-clojure-1.4.0-SNAPSHOT.jar\swank\payload) On Mon, Sep 26, 2011 at 2:56 AM, Roberto Mannai wrote: > > I have some trouble. I'm on OSX Lion, and have a few hours ago > installed Aquamacs and SLIME from http://aquamacs.org/download.shtml. > Then installed lein/swank/and clojure-mode, as Phil suggested. > > In order to make it work I had to remove the autodoc option, by > commenting line 20 from /Library/Application Support/Aquamacs > Emacs/SLIME/contrib/slime-fancy.el: > ;(slime-autodoc-init) > > So by starting swank manually with "lein swank" (or swank-clojure) + > M-x slime-connect I can now evaluate Clojure code in the REPL; instead > when doing a "clojure-jack-in" I get the following error: > > (from *Messages* buffer) > << Starting swank server... > << error in process filter: progn: Invalid read syntax: ")" > << error in process filter: Invalid read syntax: ")" > > (last lines from *swank* buffer) > << (provide 'slime-repl) > << ;;; slime-repl.el ends here > << (run-hooks 'slime-load-hook) > > Any idea? > > On Sun, Sep 25, 2011 at 5:52 PM, László Török wrote: > > +1 for me too on Snow Leopard with latest Aquamacs > > > > 2011/9/23 Durgesh Mankekar > >> > >> +1 here. These instructions have worked for me with Aquamacs. > >> On Sep 23, 2011, at 2:46 PM, Justin Kramer wrote: > >>> > >>> * install Leiningen > >>> * install the swank-clojure plugin: lein plugin install swank-clojure > >>> 1.3.2 > >>> * install clojure-mode (you can do this from git) > >>> * navigate to a project and do M-x clojure-jack-in > >>> > >>> That's all it takes. It might work with Aquamacs, but since that fork > >>> is not portable it's impossible for me to test on it. So GNU Emacs is > >>> recommended. > >> > >> For what it's worth, I use this setup with Aquamacs and everything works > >> perfectly. > >> Justin > >> -- > >> You received this message because you are subscribed to the Google > >> Groups "Clojure" group. > >> To post to this group, send email to clojure@googlegroups.com > >> Note that posts from new members are moderated - please be patient with > >> your first post. > >> To unsubscribe from this group, send email to > >> clojure+unsubscr...@googlegroups.com > >> For more options, visit this group at > >> http://groups.google.com/group/clojure?hl=en > >> > >> -- > >> You received this message because you are subscribed to the Google > >> Groups "Clojure" group. > >> To post to this group, send email to clojure@googlegroups.com > >> Note that posts from new members are moderated - please be patient with > >> your first post. > >> To unsubscribe from this group, send email to > >> clojure+unsubscr...@googlegroups.com > >> For more options, visit this group at > >> http://groups.google.com/group/clojure?hl=en > > > > > > -- > > László Török > > Skype: laczoka2000 > > Twitter: @laczoka > > > > -- > > You received this message because you are subscribed to the Google > > Groups "Clojure" group. > > To post to this group, send email to clojure@googlegroups.com > > Note that posts from new members are moderated - please be patient with your > > first post. > > To unsubscribe from this group, send email to > > clojure+unsubscr...@googlegroups.com > > For more options, visit this group at > > http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: trouble setting up emacs
It seems you're having some problems with incompatible slime versions. On Mac I'm successfully using Acquamacs (http://aquamacs.org/download.shtml - do NOT install Aquamacs-SLIME-xx.pkg.tgz) without any particular workaround. Just install it, install lein (my script is /usr/bin/lein) and the clojure-mode. See also http://groups.google.com/group/clojure/browse_thread/thread/986227536292502b?hl=en On Tue, Oct 25, 2011 at 2:06 AM, Howard Lewis Ship wrote: > So Swank appears to be running, but when I edit a Clojure file and hit > C-x C-e I get an error: > > Symbol's function definition is void: lisp-eval-last-sexp > > I also see this in my *messages* buffer: > > error in process filter: require: Symbol's value as variable is void: > slime-clj > > Any ideas ... even on where to start? > > > > On Mon, Oct 24, 2011 at 4:55 PM, Howard Lewis Ship wrote: >> This was helpful: >> >> http://www.emacswiki.org/emacs/MacOSTweaks#toc14 >> >> I added the following to my init.el: >> >> (setenv "PATH" (concat (getenv "PATH") ":~/bin")) >> (setq exec-path (append exec-path `("~/bin"))) >> >> >> Seems like I could have used (add-to-list 'exec-path "~/bin") for the >> second line, is that right? >> >> In any case, my next step is to see if Swank is working (it would help >> if I knew what Swank was supposed to do!) >> >> On Mon, Oct 24, 2011 at 4:33 PM, Phil Hagelberg wrote: >>> On Mon, Oct 24, 2011 at 4:28 PM, Howard Lewis Ship wrote: lein is on my search path (in ~/bin). Where do I update things so that it is on the path for the Swank process? >>> >>> In Mac OS X, usually programs that are launched from the GUI don't get >>> their environment variables (like $PATH) set correctly. Supposedly >>> there's a fix, but it involves editing a file called plist.xml, so I >>> have a hard time recommending it with a clear conscience. >>> >>> -Phil >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Clojure" group. >>> To post to this group, send email to clojure@googlegroups.com >>> Note that posts from new members are moderated - please be patient with >>> your first post. >>> To unsubscribe from this group, send email to >>> clojure+unsubscr...@googlegroups.com >>> For more options, visit this group at >>> http://groups.google.com/group/clojure?hl=en >> >> >> >> -- >> Howard M. Lewis Ship >> >> Creator of Apache Tapestry >> >> The source for Tapestry training, mentoring and support. Contact me to >> learn how I can get you up and productive in Tapestry fast! >> >> (971) 678-5210 >> http://howardlewisship.com >> > > > > -- > Howard M. Lewis Ship > > Creator of Apache Tapestry > > The source for Tapestry training, mentoring and support. Contact me to > learn how I can get you up and productive in Tapestry fast! > > (971) 678-5210 > http://howardlewisship.com > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
ClojureScript: Emacs Inferior Lisp Windows Batch Script
I modified the repljs.bat to include the current directory src/clj, src/cljs, lib/, test/cljs, and test/clj to use with emacs inferior lisp mode in Windows. https://gist.github.com/1310468 Matt Hoyt -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: trouble setting up emacs
On Mon, Oct 24, 2011 at 5:06 PM, Howard Lewis Ship wrote: > error in process filter: require: Symbol's value as variable is void: > slime-clj slime-clj is a different poorly-named library that has been renamed to ritz. Unfortunately the packages are still available for installation. The swank-clojure readme should cover everything you need as long as you don't have any other incompatible libraries (like swank-clj or the CL-compatible version of slime) installed: https://github.com/technomancy/swank-clojure/blob/1.3.x/README.md The only piece of elisp you should install is clojure-mode. -Phil -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
where do you put clojure.java.jdbc?????
I am running Vista. I installed Clojure as c:\clojure. Where and how do you put the file [org.clojure/java.jdbc "0.0.3-SNAPSHOT"]] -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
R.I.P. John McCarthy
John McCarthy, the father of Lisp, died last night at the age of 84. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: R.I.P. John McCarthy
> John McCarthy, the father of Lisp, died last night at the age of 84. Here lies a Lisper Uninterned from this mortal package Yet not gc'd While we retain pointers to his memory Source - https://twitter.com/#!/mtraven/status/128603266933198848 Regards, BG -- Baishampayan Ghose b.ghose at gmail.com -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: clojure starter package for aichallenge ?
Hi Ulises, I get a "bad submission key found" error when I submit the zip file that contains ants.clj MyBot.clj Am I doing something wrong? I did run the test_bot.sh with MyBot.clj .. It seems to work fine. Thanks, Sunil. On Tue, Oct 25, 2011 at 3:52 AM, Ulises wrote: > I tried submitting the started package and it crashed as hills weren't > implemented. > > I have patched the starter package to include hills (although I > suspect I'm doing the wrong thing; I blindly copied the behaviour of > keeping track of the coords for hills too). > > The code resides in: https://github.com/ulises/ai-challenge > > PS: I just submitted it and it passed all tests. > > U > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: clojure starter package for aichallenge ?
I failed to mention that both the files are in a directory named mybot On Tue, Oct 25, 2011 at 10:58 AM, Sunil S Nandihalli < sunil.nandiha...@gmail.com> wrote: > Hi Ulises, > I get a "bad submission key found" error when I submit the zip file that > contains > ants.clj > MyBot.clj > > Am I doing something wrong? > > I did run the test_bot.sh with MyBot.clj .. It seems to work fine. > > Thanks, > Sunil. > > > > On Tue, Oct 25, 2011 at 3:52 AM, Ulises wrote: > >> I tried submitting the started package and it crashed as hills weren't >> implemented. >> >> I have patched the starter package to include hills (although I >> suspect I'm doing the wrong thing; I blindly copied the behaviour of >> keeping track of the coords for hills too). >> >> The code resides in: https://github.com/ulises/ai-challenge >> >> PS: I just submitted it and it passed all tests. >> >> U >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clojure@googlegroups.com >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> clojure+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/clojure?hl=en >> > > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: R.I.P. John McCarthy
Hi all, though i am at the early stages of clojure, i think it is right time to share our fellow clojurian conversation with The Great McCarthy. Here is the link.. http://nathanmarz.com/blog/my-conversation-with-the-great-john-mccarthy.html -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: where do you put clojure.java.jdbc?????
On Mon, Oct 24, 2011 at 8:36 PM, jayvandal wrote: > I am running Vista. I installed Clojure as c:\clojure. You don't need to "install" Clojure if you're using Leiningen (and I'd recommend you use Leiningen for managing project dependencies). > Where and how do you put the file > > [org.clojure/java.jdbc "0.0.3-SNAPSHOT"]] In project.clj (see Leiningen above) - and "0.1.0" is the current version of c.j.jdbc. -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Railo Technologies, Inc. -- http://www.getrailo.com/ "Perfection is the enemy of the good." -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en