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

My first question is about terminology used. I get why the code example works, but the description I quoted says the reverse (i.e. "Animal is a subtype of Cat", and "Animal is a supertype of Thing"). I assume that it's an error then.

Thx for the answer to the second question :). I think my mind put an additional "by" in that sentence and got confused.



> I ask because I'm not sure about the grammar aspect, and in my native language (Polish) we have a few ambiguities like that, which I sometimes jokingly write down with an arrow, e.g. "A can be ---substitutes for--> B" or "A can be <--substituted for-- B", to make it damn explicit which direction the word works.

-------------------------

I think it's confusing for 2 reasons: passive voice and prepositions.

1) Passive voice - instead of saying A substitutes for B (active voice) it says A can be substituted for B (passive voice.)

2) Prepositions - "be substituted" can collocate with "for" or "by" with the opposite meaning!

A <-- can be substituted by <-- B (use B where you would expect A)

A --> can be substituted for --> B (use A where you would expect B)


Yes I think he has made a mistake there. He did get it right earlier in the article he says "This makes Cat a subtype of Animal. That means that all Cats are Animals, but not all Animals are Cats."


The text describing the relationships between A,B,C,D makes a lot more sense to me if the example is switched to

    Thing -> Cat


This is why I like the terms "derived" and "base": pretty much impossible to mix up.




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

Search: