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.
Macros do not necessarly transform code at compile-time. A late-binding interpretation is possible. See for example http://programmers.stackexchange.com/a/274200/33157.
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…
I don't see any kind of error handling, but if I understand correctly, in some cases in Go it is not necessary to check for errors directly (an errorneous output stream would do-nothing on write, for example). Do you…
Regarding 1., I don't think it follows that the pattern-macro will end up in one giant namespace. I'd love to understand why you think so. And for 2, even though what you say seems desirable on the surface, you still…
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 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.
Macros do not necessarly transform code at compile-time. A late-binding interpretation is possible. See for example http://programmers.stackexchange.com/a/274200/33157.
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…
I don't see any kind of error handling, but if I understand correctly, in some cases in Go it is not necessary to check for errors directly (an errorneous output stream would do-nothing on write, for example). Do you…
Regarding 1., I don't think it follows that the pattern-macro will end up in one giant namespace. I'd love to understand why you think so. And for 2, even though what you say seems desirable on the surface, you still…
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…