Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

IMO the thing that makes lisp so powerful is the ability to extend the syntax, and this is only possible because the syntax is represented as a list.

When your syntax can be manipulated like data (in this case lists), macros become regular functions operating on regular data, the data just happens to be syntax in this case. I can take a struct definition for example and use regular, built-in list manipulation functions to walk the definition and transform it into whatever I want.

In something like Rust we can also run macros on struct definitions, but in that case you operate on a token stream, and need specialized libraries and functions to do meaningful transformations. It ends up being much more difficult but still pretty powerful.

Super powered macros is what makes lisp "lispy" to me and the "abnormal" syntax is required for that, so I do think the syntax is what makes is uniquely expressive.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: