[Haskell-cafe] Mutual scoping question

Mark McConnell mmcconnell17704 at yahoo.com
Thu Nov 23 01:26:09 UTC 2023

 What about
let h ... = ... h ...in let f ... = ... f,g,h ...       g ... = ... f,g,h ...   in ... (main body that uses f and g) ...
This makes the dependencies clear.  h stands on its own, f and g use each other together with h, and the main body can use f, g, and h.
I believe what you wanted, however, was to express that the main body *cannot* (will not, should not) use h.  This version does not express that.    On Wednesday, November 22, 2023 at 07:40:25 PM EST, Todd Wilson <twilson at csufresno.edu> wrote:  
 Hello, Cafe:
Is there a preferred way to define two top-level mutually recursive functions, f and g, that both use a common local function h such that h is (1) only defined once and (2) does not escape the scope of f and g? I suppose it could be done like this:

fg = let f ... = ... f,g,h ...
         g ... = ... f,g,h ...
         h ... = ... h ...
      in (f,g)
f = fst fg
g = snd fg
but is there something more elegant than this that I'm not seeing?

Todd Wilson_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
Only members subscribed via the mailman list are allowed to post.  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20231123/e77def09/attachment.html>

More information about the Haskell-Cafe mailing list