lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


In message <CAFE_sBFq2uU6TNB9xE2GQrQHXBfM57oOxnNwuumYPSGiBSBoXg@mail.g 
mail.com>
          Coda Highland <chighland@gmail.com> wrote:

> Fair enough, but that just means Haskell's noun class system is different.

The trouble with using words like "noun" and "verb" and so on, is
that all human languages (as far as I know) adopt a first order
logic. By that I mean a two-tier system, the lower tier for
"passive" objects, the upper tier for "active" objects that can 
transform things in the lower tier. This does not fit
higher order logic very well, where there is no such distinction.
[ It does fit ancient IE languages (viz. the Anatolian ones), though, 
which show an animate/inanimate distinction, both for nouns and verbs 
(transitive/intransitive). If you confuse a boulder for a bear you may 
frighten yourself, but little harm is done. The other way round is 
more serious! So there would have been an evolutionary advantage in 
building the animate/inanimate distinction deep into the structure of 
speech. The traces of this distinction can still be seen in English:
'who' for the animate, 'what' for the inanimate.]

A good programming language should provide the user with a mental
picture that she can use to construct algorithms. That implies that
it uses apt metaphors - everything is an object, everything is a 
function, everything is a proposition, everything is an actor,
everything is a pattern/action pair ... - and each metaphor can, I 
suppose, help the user with well-chosen syntax and borrowings from 
ordinary speech.

No type of language can be best for all purposes. Who knows what 
useful metaphors are yet to be discovered? :)

-- 
Gavin Wraith