Hacker News new | past | comments | ask | show | jobs | submit login

'and in most languages these have a performance penalty' - pretty sure this is due to either bad implementation or because of additional guarantees they provide. Because fundamentally these constructs can be rewritten to be loops by the compiler, except where you're wanting to violate the guarantees they enforce (i.e., maybe you want to mutate every item in the array, rather than treating it as immutable; these won't do that). For those few situations you want to violate those guarantees, you wouldn't reach for these higher order functions. There's not really any reason not to include them except for language design ethos.

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