标签:
今天写了段Haskell代码,发现let有时候需要添加in,有时候不需要添加in。
其中主要原因是do代码块。
do { let <decls> ; <stmts> } = let <decls> in do { <stmts> }
而剩下的时候需要使用in。
如果想让let在do代码块中使用in该怎么写呢
do let x = 42 in foo x
需要使用缩进,因为Haskell的缩进是有含义的。
OK,接着说一个关于let缩进的问题
foo :: Double -> Double foo x = let s = sin x c = cos x in 2 * s * c
我们一般写let需要上面那样缩进。不过呢我们也有方法忽略缩进,使用下面的写法,我们就可以忽略缩进。
foo :: Double -> Double; foo x = let { s = sin x; c = cos x; } in 2 * s * c
标签:
原文地址:http://my.oschina.net/u/236698/blog/406541