[Haskell-cafe] Partial Specification of Right-Hand Side
Russ Lewis
spamhole-2001-07-16 at deming-os.org
Sun Apr 4 22:28:51 EDT 2004
Hi, everybody. I'm really new to Haskell, but am really fascinated by
it all! I have been thinking about its uses, and have a newbie question.
I was thinking about the process of mapping imperative languages to
functional ones. It occurred to me that you can restate an imperative
function as a functional function which takes the old state of the
global values as an input and returns a new set of globals and output:
int foo(char arg1) {...};
foo arg1 globalsIn = ( retval , globalsOut )
Now, some imperative functions truly are functional. So I was wanting
to write something like this in Haskell:
foo _ globalsIn = ( <unspecified> , globalsIn )
...other foo defintions below...
Basically, the idea would be that, no matter what the argument was, the
output globals would be identifal to the input globals. So, if the
calling function only cared about the output globals, then no more
calculation would be needed. But if the retval was required, then the
thunk would cause more searches of 'foo' to be performed.
Of course, you can implement it with a second function:
foo x globalsIn = ( fooInternal x , globalsIn )
...define fooInternal below...
But I was wondering if Haskell had a way to do this with a single function.
More information about the Haskell-Cafe
mailing list