[HN Gopher] Not Lisp again (2009) ___________________________________________________________________ Not Lisp again (2009) Author : caslon Score : 55 points Date : 2021-02-28 21:03 UTC (1 hours ago) (HTM) web link (funcall.blogspot.com) (TXT) w3m dump (funcall.blogspot.com) | caslon wrote: | Past threads in reverse-chronological order: | | https://news.ycombinator.com/item?id=18308721 (236 comments) | https://news.ycombinator.com/item?id=14247269 (263 comments) | https://news.ycombinator.com/item?id=504667 (39 comments) | p_l wrote: | Bravo! | etaioinshrdlu wrote: | I feel like this is a lot less impressive nowadays that first- | class functions are common. It might as well be Python: | dx = .0001 def deriv(f): def f_prime(x): | return (f(x+dx) - f(x)) / dx return f_prime | lisper wrote: | A lisp interpreter including lexical closures and a parser in 114 | lines of Python code: | | http://flownet.com/ron/lisp/l.py | auggierose wrote: | Every few years I see this great story popping up. I love it! A | lot of things seem complicated, but are not, if you just approach | it the right way, and if you don't get bogged down in up-front | technical optimisations which you feel are necessary, but might | not be. | simias wrote: | I must admit that I never understood what these particular | examples had to do with Lisp being such a great programing | language given that you can implement exactly the same logic in | basically any programing language, including for instance C | (although you'd have to cheat a bit for the `deriv` function, | admittedly): #include <stdio.h> | #define DX 0.0001 #define DERIV(_f) float | deriv_##_f(float x) { return (_f(x + DX) - _f(x)) / DX; } | float cube(float x) { return x * x * x; } | DERIV(cube) int main(void) { | printf("%f\n", deriv_cube(2)); printf("%f\n", | deriv_cube(3)); printf("%f\n", deriv_cube(4)); | } | | Any language supporting closures or generics could get rid of the | unsexy DERIV macro. | | What sets Lisp apart is its "code as data" approach which lets | the coder write incredibly powerful macro (and also incredibly | hard to understand code). The rest can easily be emulated in | other languages. | | I do like this naive approach mind you, there's a certain Zen to | be found reimplementing these mathematical concepts from first | principles, I just really fail to see what makes Lisp so | remarkable in this context. ___________________________________________________________________ (page generated 2021-02-28 23:00 UTC)