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

Well, as mentioned that's why you create two lambdas as the branches. This is pretty much what thunks are in some languages (like Haskell), so this example doesn't strictly require macros per se.


This is true, but thunks carry overhead that macros don't in this case.


Well, if we have a compiler that sees a constant value, it can completely optimize out one branch. But it of course depends on the semantics of the language.

But yeah you are right in case of a naive compiler.


And I know people will think I'm crazy, but thunks are harder to read.

(And I have trouble reading macros).




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

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

Search: