A goto-like usage of a function
rturk at science.uva.nl
Fri Jul 30 00:30:10 CEST 2004
On Thu, Jul 29, 2004 at 01:31:19PM -0700, Donn Cave wrote:
> Depends of course on the language, but there sure exist
> languages where "while" and "for" don't even exist (and
> hence are not conventional control structures.) Haskell
> is the one I know.
> That isn't an accident, they aren't omitted just because
> no one had time to implement them. Loops are an "imperative"
> construct that doesn't make sense in a pure functional
> language like Haskell. So I suppose that even where there's
> more support for imperative constructs, as I think there is
> in Scheme for example, a mature programmer of a Functional
> Programming persuasion might well on the contrary recode
> a loop to a recursive algorithm.
Except that as general recursion is in some aspects quite a bit
like goto (power, readability etc), it is often preferred to
refactor the recursion into it's own function: Higher-order
functions like map, filter and reduce/fold. Which means that,
in some ways, a language like Haskell _does_ have control
structures (which are preferred over recursion),
although those structures happen to also be functions.
(I've (re)cursed (in) Prolog at college far too much,
so I may be overreacting against explicit recursion <wink>
Nobody can be exactly like me. Even I have trouble doing it.
More information about the Python-list