Bang patterns
Ben Millwood
haskell at benmachine.co.uk
Tue Feb 5 01:24:51 CET 2013
On Mon, Feb 04, 2013 at 01:21:31PM -0800, Johan Tibell wrote:
>On Sun, Feb 3, 2013 at 4:44 PM, Ben Millwood <haskell at benmachine.co.uk> wrote:
>> I have two proposals, I suppose:
>> - make bang patterns in let altogether invalid
>
>I would prefer it to be valid. It's the syntactically most lightweight
>option we have to force some thunks before using the resulting values
>in a constructor that we have. Example
>
> let !x = ...
> !y = ...
> in C x y
>
>The alternative would be
>
> let x = ...
> y = ...
> in x `seq` y `seq` C x y
>
>which obscures the code much more.
I'd write (C $! x) $! y. We could devise a left-associative $! to avoid
the use of parentheses here. But my objection was only ever a mild
unease in any case, so I'm happy to dismiss it.
Ben
More information about the Haskell-prime
mailing list