Hacker News new | ask | show | jobs
by muglug 1518 days ago
Yes, but IMO that makes the code a bit more abstract:

You've left behind an explicit "is this collection non-empty" and you're instead relying on a property of a non-empty collection.

The PHP version can also be written as

    if (($element = reset($some_arr)) !== null) {
        echo $element;
    }
But that code is similarly divorced from the imaginary pseudocode equivalent
2 comments

> Yes, but IMO that makes the code a bit more abstract:

> You've left behind an explicit "is this collection non-empty" and you're instead relying on a property of a non-empty collection.

More abstract for who? I think virtually all Rust programmers would easily understand the `if let` snippet, virtually all PHP programmers would understand the PHP snippet, and virtually all programmers of any language would understand that a non-empty array has a first element. I'm not at all convinced that most programmers would correctly guess that a function called `reset` is used to access the first element in an array though.

A collection is non-empty if and only if it has a first element. Therefore checking for non-emptiness is the same as checking for the existence of a first element.