[Haskell-cafe] Mutual scoping question

Jeff Clites jclites at mac.com
Thu Nov 23 01:43:19 UTC 2023


Can you do:

  (f, g) = let f’ = … in (f’, g’)

or is a pattern match not allowed at top level?

Jeff

> On Nov 22, 2023, at 4:40 PM, 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:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> 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/20231122/f79ed632/attachment.html>


More information about the Haskell-Cafe mailing list