码迷,mamicode.com
首页 > 其他好文 > 详细

Haskell的let

时间:2015-04-26 21:21:13      阅读:326      评论:0      收藏:0      [点我收藏+]

标签:

今天写了段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


Haskell的let

标签:

原文地址:http://my.oschina.net/u/236698/blog/406541

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!