[Haskell-cafe] Can I destructive rebind a local variable in
haskell?
Wang, Chunye (NSN - CN/Beijing)
chunye.wang at nsn.com
Tue Jan 6 03:20:16 EST 2009
Hi Evan,
> You can also reuse the name exactly by using bind+return instead of
let:
> test filename = do
> is_dir <- doesDirectoryExist filename
> filename <- return $ if not is_dir then filename else filename
> I'm not a huge fan of the prime thing because it's tiny and easy to
miss and if you forget it you probably won't get a type error, you'll
just get a bug, possibly a subtle one. Besides, what's the next step?
> filename''? filename'''?
Nice. Good solution. ``imperative style'' is not a bad idea when I'm
not used to the ``pure functional style''
E.g.
filename <- return $ combine filename "Makefile"
Similar to the other imperative language
filename = joinPath(filename,"Makefile")
and I often write similar code in EmacsLisp also.
It is not so buggy, because we live in "imperitive programming" for
long time
Best Regards
Chunye Wang <chunye.wang at nsn.com>
More information about the Haskell-Cafe
mailing list