News for hackers. Stuff that matters.
Re:James Gosling Interview by discreteevent on Thursday August 12, 2021 @06:03AM (#28154283)
An if statement and a function call have different forms in C. They have the same form/syntax in lisp. It's like the power of everything is a file/bytestream in unix. Because everything has the same form (uniform interface) then if you write a tool it can be made to work on everything. Grep works with all processes because they all have a uniform output stream. Macros in lisp work with all constructs in the language. Usually the basic form has to be quite primitive to do this. If it is too primitive you end up with what is known as a "turing tar-pit". But people can fall in love with the power of this uniform interface so much that they do not realize that they have ended up with a tar-pit at a high level. This can happen with macros but it doesn't have to.
Re:James Gosling Interview by andrekandre on Thursday August 12, 2021 @05:51PM (#28162012)
makes sense, it seems a fundamental tension within lisp itself as another commenter said "everything is eventually a list in lisp" then i guess macros have to be the same

maybe to support semantics "this is an if statement" could be some kind of metadata on the macro i suppose?