8
运行此代码为什么这个代码使用阴影`let`绑定挂起?在解释</p> <pre><code>j = let x = 4 in let x = x * x in x </code></pre> <p>:
ghci> j
... no response ...
用很少的CPU利用率挂起。为什么是这样?我预计j = 16
。
运行此代码为什么这个代码使用阴影`let`绑定挂起?在解释</p> <pre><code>j = let x = 4 in let x = x * x in x </code></pre> <p>:
ghci> j
... no response ...
用很少的CPU利用率挂起。为什么是这样?我预计j = 16
。
据Haskell的报告,section 3.12:
让词语具有一般形式让{D1; ...; dn},并引入一个嵌套的,词汇范围相互递归的声明列表(让let经常在其他语言中称为letrec)。声明的范围是表达式e和声明的右边。
(重点煤矿)
所以在第二let
,其中x = x * x
,所有x
s请参阅相同的结合,无指外x = 4
结合。
给你自己的问题的答案:好! ^^ – 2012-08-10 15:24:25