Quoth Magnus Therning, nevermore,
> I'm not sure how a "functional" recipe would look, maybe something like
> this:
> 
>  White_sauce is a combination of ... .
> 
>  Chopped_onions is onions cut into small pieces.
> 
>  White_sauce_with_chopped_onions is the combination of white_sauce and
>  chopped_onions.

The functional approach

> whitesauce = foldl stir base milks
>     where base = flour + (heat butter)

compared with the imperative

> whitesauce
>     base = flour + heat(butter);
>     while (milks > 0)
>         stir(base, milk);
>         milks--;

I'm going to go out on a limb here and suggest that, like Feynman's
example of how people count in their heads, both of these explanations
are accurate. If I were to explain the process to someone it would be in
the imperative style: literally "giving commands", which is what a
recipe is. But in my mind I imagine it as the gradual process of
stirring milk into a base, which is far more adequately described in the
functional style.

The question is --- how would an expert describe such a process? Would a
professional chef give instructions in the functional or imperative
style? I think that is relevant, since the approach to the problem may
change depending on proficiency. We may *learn* in the imperative style
but *think* in the functional.

Cheers,

Dougal.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to