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

Perhaps I was particularly sensitive to it because it matched my internal models. Here's the way I break it down:

In classical/antiquated grammar, most sentences can be divided into a subject and a predicate. The predicate indicates what the subject does/is. While there are issues with agreement and semantics, on a broad syntactic level, the subject is arbitrary and can be replaced with another valid subject:

    The angry dog  // jumped over the fence.
    My grandmother // jumped over the fence.
    Twelve apples  // jumped over the fence.
Since the predicate encodes the action, to me it makes sense to think of this relationship as a predicate function taking a subject argument. Even if the subject is plural or conceptual it is still just a single subject object, hence unary.

Then, in the OP's js context of Object.map we have a situation like this:

    import map from 'just-map-object';
    function jumpedOverTheFence(subj) { \\ impl };
    var things = ['The angry dog', 'My grandmother', 'Twelve apples'];

    map(things, jumpedOverTheFence);
Obviously I'm doing some weird things for brevity like conflating strings and objects there, but hopefully gets the point across.

IMO the analogy actually extends fairly well too. Agreement is a good match for typing (A singular typed predicate "walks" can't take a plural typed subject "Some dogs" => "Some dogs walks" fails at the syntax level), and semantics match internal expectations of functions (The "12 apples jumped..." breaks internal, but untyped expectation that the subject would have agency or control over its actions, like a "chooseTo" method or a "consciousness" property.)



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

Search: