[Haskell-cafe] General Advice Needed ..
stephen.tetley at gmail.com
Thu Jan 14 11:28:48 EST 2010
Does you find this version easier to understand?
rangeProduct :: Int -> Int -> Int
rangeProduct m n = if m > n then 0
else if m == n then m
else m * rangeProduct (m+1) n
I would suspect the main point of the example is to make you think
recursively - note how rangeProduct is called from within its own
definition (on the last line of code).
Before it, there are two stopping conditions that will halt recursion
"if m > n " or "if m == n" - stopping conditions are crucial for
recursive thinking and programming - without them you will recur
endlessly and never produce an answer.
If you exam is 'on paper' - that's to say code you can have some
syntax errors because it isn't actually run - you want to be
demonstrating that you can think recursively.
More information about the Haskell-Cafe