[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Syntactic conventions
- From: Gavin Wraith <gavin@...>
- Date: Sat, 26 Apr 2014 11:57:15 +0100
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