I can build strawmen too: - SmugCeeWeenie: I am so fast, look (oops, core dumped) - SmugGoWeenie: abstractions are so nasty we should get rid of functions, so that everyhting is laid out clearly. Hopefully, I have…
A functional approach: (defun mirror (tree) (when tree (tree (tree-data tree) (mirror (tree-right tree)) (mirror (tree-left tree))))) For completness, here are the definitions: (defpackage :trees (:use :cl) (:shadow…
I am not sure, but it seems that this may be implementation-dependent.
Macros are not needed. You only need the UNWIND-PROTECT special operator, which is the generic feature you are looking for.
See also the Ada Gems serie of articles: http://www.adacore.com/adaanswers/gems/
Nice article. By the way, you may want to watch this course by Hal Abelson and Gerald Jay Sussman (Henderson Escher example): http://ocw.mit.edu/courses/electrical-engineering-and-comput... Also, the article reminded me…
When you try to apply all functions, the space becomes limited and you cannot see the resulting piece, especially when it gets tall.
> After doing a function rather than instantly showing the next cube put a .5 second opacity transition Please, no animation. Instantaneous feedback is perfect as it is. My 2cts.
Yes, the use of macros is not always justified in the examples, because Python is quite expressive already. However, the ability to have macros is orthogonal with the feature set of the language. What is interesting is…
> It's a tradeoff, of course. > Reasonable people can disagree about whether the tradeoff is worth it. > But that's my point: reasonable people can disagree. Sure, we disagree. I understand that you think there is a…
> Not only is he wrong, he's clearly wrong. You keep repeating that, but the more you discuss it, the less "clear" it is. > I don't understand your question. You acknowleded that we need to have a specification in order…
Just as code is data and data is code, meta-data is another form of data. Erik' quotes are all taken from https://groups.google.com/d/msg/comp.lang.lisp/8eUxiibm_zA/C...: > [...] is INTENDED to be a MODIFIER for FOO and…
Slow clap
Common Lisp (ql:quickload :drakma) (ql:quickload :cl-json) (ql:quickload :local-time) (defparameter *data* (cl-json:decode-json-from-string (drakma:http-request…
Macros will expand into lisp forms, not only expressions. Whether a form is an expression, a declaration or a pattern depends on the surrounding context. I would say that declarations, ... are not syntax but semantic…
> Wait a second--is this really using exceptions for control flow? No. If it used exceptions for control-flow, the defined function would actually throw an exception. Here, we catch "Exceptional Problems" and ignore…
Common Lisp: maybe an Animagus, like Sirius Black. Or maybe Alastor Maugrey (Mad Eye), who is quite powerful but is not necessarly attractive.
My own point of view is biased, admittedly, but I couldn't stop thinking that Common Lisp was relevant for each item in your list. Of course, much isn't built-in, but this is not as bad as it sounds: concurrent channels…
"modern base API", what does that mean?
Instead of @kernel and @cuda, you might want to use defkernel and with-cuda... See the example files for cl-cuda: https://github.com/takagi/cl-cuda/blob/master/examples/vecto... I though that Julia had macros, so I…
Ok, thanks. So unlike Common Lisp, symbol resolution does not occur at read time.
I am looking at one of the examples: https://github.com/feature-macros/clojurescript/blob/feature... But if I run Clojure on the JVM, the following fails: (def host nil) (defn foo [] (when (= :cljs host) (gstring/format…
I can understand that debugging expanded code is not fun. On the other hand, LOOP allows to naturally express iteration patterns that can be error-prone with other languages: you hardly produce off-by-one bugs contrary…
I forgot about lenses, thanks. About non-locality of macros vs. functions: Macros, being functions, provide this kind of assurance, too at the syntax tree level: you only operate on the local, current subtree. They can…
Don't forget ONCE-ONLY
I can build strawmen too: - SmugCeeWeenie: I am so fast, look (oops, core dumped) - SmugGoWeenie: abstractions are so nasty we should get rid of functions, so that everyhting is laid out clearly. Hopefully, I have…
A functional approach: (defun mirror (tree) (when tree (tree (tree-data tree) (mirror (tree-right tree)) (mirror (tree-left tree))))) For completness, here are the definitions: (defpackage :trees (:use :cl) (:shadow…
I am not sure, but it seems that this may be implementation-dependent.
Macros are not needed. You only need the UNWIND-PROTECT special operator, which is the generic feature you are looking for.
See also the Ada Gems serie of articles: http://www.adacore.com/adaanswers/gems/
Nice article. By the way, you may want to watch this course by Hal Abelson and Gerald Jay Sussman (Henderson Escher example): http://ocw.mit.edu/courses/electrical-engineering-and-comput... Also, the article reminded me…
When you try to apply all functions, the space becomes limited and you cannot see the resulting piece, especially when it gets tall.
> After doing a function rather than instantly showing the next cube put a .5 second opacity transition Please, no animation. Instantaneous feedback is perfect as it is. My 2cts.
Yes, the use of macros is not always justified in the examples, because Python is quite expressive already. However, the ability to have macros is orthogonal with the feature set of the language. What is interesting is…
> It's a tradeoff, of course. > Reasonable people can disagree about whether the tradeoff is worth it. > But that's my point: reasonable people can disagree. Sure, we disagree. I understand that you think there is a…
> Not only is he wrong, he's clearly wrong. You keep repeating that, but the more you discuss it, the less "clear" it is. > I don't understand your question. You acknowleded that we need to have a specification in order…
Just as code is data and data is code, meta-data is another form of data. Erik' quotes are all taken from https://groups.google.com/d/msg/comp.lang.lisp/8eUxiibm_zA/C...: > [...] is INTENDED to be a MODIFIER for FOO and…
Slow clap
Common Lisp (ql:quickload :drakma) (ql:quickload :cl-json) (ql:quickload :local-time) (defparameter *data* (cl-json:decode-json-from-string (drakma:http-request…
Macros will expand into lisp forms, not only expressions. Whether a form is an expression, a declaration or a pattern depends on the surrounding context. I would say that declarations, ... are not syntax but semantic…
> Wait a second--is this really using exceptions for control flow? No. If it used exceptions for control-flow, the defined function would actually throw an exception. Here, we catch "Exceptional Problems" and ignore…
Common Lisp: maybe an Animagus, like Sirius Black. Or maybe Alastor Maugrey (Mad Eye), who is quite powerful but is not necessarly attractive.
My own point of view is biased, admittedly, but I couldn't stop thinking that Common Lisp was relevant for each item in your list. Of course, much isn't built-in, but this is not as bad as it sounds: concurrent channels…
"modern base API", what does that mean?
Instead of @kernel and @cuda, you might want to use defkernel and with-cuda... See the example files for cl-cuda: https://github.com/takagi/cl-cuda/blob/master/examples/vecto... I though that Julia had macros, so I…
Ok, thanks. So unlike Common Lisp, symbol resolution does not occur at read time.
I am looking at one of the examples: https://github.com/feature-macros/clojurescript/blob/feature... But if I run Clojure on the JVM, the following fails: (def host nil) (defn foo [] (when (= :cljs host) (gstring/format…
I can understand that debugging expanded code is not fun. On the other hand, LOOP allows to naturally express iteration patterns that can be error-prone with other languages: you hardly produce off-by-one bugs contrary…
I forgot about lenses, thanks. About non-locality of macros vs. functions: Macros, being functions, provide this kind of assurance, too at the syntax tree level: you only operate on the local, current subtree. They can…
Don't forget ONCE-ONLY