Richard O'Keefe wrote:
The most popular declarative language is SQL.
Perhaps the fact that it doesn't use recursion may be a factor
in its success?
Well, in theory (sic), it uses set theory instead, which is
just differently abstract from recursion and self-reference.
I frivolously suggest, however, that most users of SQL probably
concentrate on selecting and combining the edited highlights of
curiously-needled data stacks, which are easy to model in
concrete terms without drawing on diagrams by Mr Venn.
Lindsay Marshall wrote:
How many of the users do really hard joins and actually understand what
> they are doing?
I thought just the same about this. If you're using MySQL, you probably
can't even do some types of join (such as full outer joins), and you're
not advised to do self-joins either, if you want your queries to finish
by going-home time. Most SQL developers probably get away with inner
and outer joins, and do anything more complicated externally, such as
in a bunch of loops in PHP, which means they barely need to deal with
the declarative world except as the source of more haystacks.
I think it's no surprise that those with a maths background find
recursion less head-splodey than those without one, because those
students are more practised at abstract thinking, and defining things
in terms of their own definitions is certainly more abstract than
For most practical uses of computers, where the software shadows the Real
World of Hay and Needles, I'd say it's probably inessential to be able to
think abstractly, although it undoubtedly limits the problems you can
work on effectively, particularly outside of IT farming metaphors.
Frank Wales [fr...@limov.com]