[Haskell-cafe] Re: FRP for game programming / artifical life simulation

Daniel Fischer daniel.is.fischer at web.de
Thu Apr 29 14:37:32 EDT 2010

Am Donnerstag 29 April 2010 20:08:00 schrieb Ben:
> A technical question: it seems like the instance of ArrowLoop is too
> strict (this is something I've wondered about in Liu's paper too.)
> Shouldn't it be
>  instance ArrowLoop SFAuto where
>      loop (SFAuto s f) = SFAuto s f'
>          where
>            f' (b, s1) = let (~(c, d), s2) = f ((b, d), s1)
>                         in (c, s2)

Let-bindings are already lazy, so the '~' makes no difference here.
Apart from the readability, both are the same as

  f' (b,s1) = let x = f ((b, snd $ fst x),s1) in (fst $ fst x, snd x)

More information about the Haskell-Cafe mailing list