[Haskell-cafe] what do I have to do exactlry with this exercises
Richard A. O'Keefe
ok at cs.otago.ac.nz
Mon Nov 2 01:29:10 UTC 2015
On 30/10/2015, at 7:52 pm, Roelof Wobben <r.wobben at home.nl> wrote:
>
> Let's say f is a recursive function which calculates the fac.
>
> So f 0 = 0
> f1 = 1
> f2 = 2
> f3 = 6
>
> so im my oponion g1 = the answer of f1 which is also the max
True. But what if f is *NOT* the factorial?
To quote your own original message,
<quote>
To test this function, add to your script a definition of some values of f thus:
f 0 = 0
f 1 = 44
f 2 = 17
f _ = 0
and so on; then test your function at various values.
</quote>
This f is NOT the factorial function. For this f,
we expect g n = if n == 0 then 0 else 44, so that
(g n == f n) is false almost always.
Let's consider the general pattern for a primitive recursive
function on the natural numbers:
g 0 otherArgs = b otherArgs
g (n+1) otherArgs = c n (g n otherArgs) otherArgs
where b(ase) and c(ombination) are primitive recursive.
In this case, there are no otherArgs, so
g 0 = <<some expression possibly involving f>>
g n = <<some expression involving n, g (n-1), and f>>
For exercise 4.22, you are given a hint that
<<some expression involving n, g (n-1), and f>>
will also involve a call to max.
There's really not a lot of sensible ways you can put these together.
More information about the Haskell-Cafe
mailing list