[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