Thanks for that link, I loved this tutorial! On Saturday, August 10, 2013 3:13:52 PM UTC-3, Jacob Goodson wrote: > > Here is where I started... > http://www.lisperati.com/clojure-spels/casting.html > > I personally disagree about being so timid with macros, however, I do not > code Clojure with a team of other people =P. > > The one thing you will find about Clojure is that it slaps a limit on the > types of macros you can do. This limit does not necessarily stop you from > creating amazing things with macros but it is there. So of the macros that > you will find in these LISP SPEL books will not be easily recreated in the > hampered(pampered?) Clojure language. Clojure was meant to be a more > corporate friendly, pragmatic language; thus, no reader macros. > > On Friday, August 9, 2013 6:21:02 PM UTC-4, Jace Bennett wrote: >> >> Thanks everyone. Good stuff. >> >> I have Let over Lambda, but I didn't glean what I wanted from it (or >> probably even what it wanted from me). I'll pick up On Lisp. I didn't >> realize it was focused on macros. >> >> Also, I think Luca has given me a clue. I used code gen techniques long >> before I started using reflection based techniques. Macros are more like >> code gen, so I'll think back to those techniques, and search for analogues >> and maybe even epiphanies. I think I had the ideas of dynamism and DRY >> complected (sorry, had to). The dynamism will obviously require state. The >> DRY shouldn't. But in C# I've usually gone dynamic to get dry. >> >> Out of curiousity, where do the defs go? Could one iterate over all the >> vars in the runtime environment? Would I just get pointers to native code? >> >> >> On Fri, Aug 9, 2013 at 1:04 PM, Andrew Stine <illumin...@gmail.com>wrote: >> >>> The difficulty with On Lisp when applied to Clojure is that the specific >>> macros On Lisp demonstrates either depend on state, which Clojure avoids, >>> or are already present in Clojure core. (if-let is a big one in my book.) >>> Some of them also run into conflicts with Clojure implicit gensyming. I >>> don't suggest it for the specific macros it demonstrates, but because it >>> demonstrates very clearly what they are for, why and where you would use >>> them, and how, in general, they are used. I also don't write macro much >>> anymore in Clojure but that's mostly because Clojure has a few macros >>> already which handle most of the things I would do with them in Common Lisp. >>> >>> >>> On Friday, August 9, 2013 11:13:44 AM UTC-4, Lee wrote: >>>> >>>> >>>> On Aug 9, 2013, at 11:01 AM, Andrew Stine wrote: >>>> >>>> > For a pretty decent cover of when and how to use macros, On Lisp[1] >>>> is a pretty good book. It's written mainly for Common Lisp but most of it >>>> translates to Clojure well enough. I find that for common code, writing >>>> macros isn't so useful as most of the goods ones are already part of >>>> clojure.core. But if you ever find yourself in the position where you'd >>>> really like to have a control structure just for your program, or >>>> introduce >>>> a compile-time code generator, or subtly add a new paradigm to the >>>> language, a macro is your ticket. >>>> > >>>> > 1. http://code.google.com/p/**onlisp/<http://code.google.com/p/onlisp/> >>>> >>>> I think that On Lisp is completely awesome -- one of the best technical >>>> books of any kind that I've ever read. >>>> >>>> However, my recollection is that the macro stuff, in particular, >>>> doesn't translate so well to Clojure because the differences between >>>> Common >>>> Lisp and Clojure macros are pretty fundamental. Or at least that has been >>>> my impression.... and I mostly stopped writing macros when I switched from >>>> Common Lisp to Clojure because I found the differences confusing. Your >>>> experience may be different but I thought that a warning might be in >>>> order. >>>> >>>> -Lee >>>> >>>> >>>> >>>> -- >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Clojure" group. >>> To post to this group, send email to clo...@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+u...@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 unsubscribe from this group and stop receiving emails from it, send >>> an email to clojure+u...@googlegroups.com. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >>> >> >>
-- -- 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 unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.