On 10.07.13 9:31 PM, Carter Schonwald wrote:
theres a very simple way to do non recursive let already! do notation in
the identity monad. I use it quite a lot lately.
Yeah, the hack
x <- return $ e
instead of
let x = e
has been discussed already.
If you put everything into the Identity monad, you lose if-then-else and
direct use of case, instead of
case me of {branches }
you need to write
e <- me; case e of { branches }
This gets a bit better with the new \case, if you can afford to only
compile on the newest ghc.
me >>= \case { branches }
On Wed, Jul 10, 2013 at 1:49 PM, Ertugrul Söylemez <e...@ertes.de
<mailto:e...@ertes.de>> wrote:
"Ezra e. k. Cooper" <e...@ezrakilty.net <mailto:e...@ezrakilty.net>>
wrote:
> As starter suggestions for the keyword or syntax, I submit:
>
> let new x = expr in body -- Not the old x!
It's not the old x in either case (recursive and non-recursive).
> let shadowing x = expr in body
>
> shadow x = expr in body
It's shadowing in either case.
> let x =! expr in body -- The explosive bang gives an imperative
> flavor.
(=!) is a valid operator name.
> Other suggestions would be welcome.
My suggestion: Don't add a non-recursive let. See my other post about
general recursion and totality checking.
Greets,
Ertugrul
--
Not to be or to be and (not to be or to be and (not to be or to be and
(not to be or to be and ... that is the list monad.
--
Andreas Abel <>< Du bist der geliebte Mensch.
Theoretical Computer Science, University of Munich
Oettingenstr. 67, D-80538 Munich, GERMANY
andreas.a...@ifi.lmu.de
http://www2.tcs.ifi.lmu.de/~abel/
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe