f#重复定义

时间:2011-05-19 19:08:34

标签: f# shadowing

在F#powerpack数学提供程序源代码中:我看到了这个(在lapack_service_netlib.fs

member this.dgemm_((a:matrix),(b:matrix)) =  
 // allocate results
  let c = Matrix.zero (m) (n)
  // transpose
  let c = Matrix.transpose c
...
  // fixups
  let c = Matrix.transpose c
  // result tuple
  c

为什么要这样? c得到重复定义吗?

1 个答案:

答案 0 :(得分:8)

这是阴影;在函数/类/成员范围内,任何本地let绑定都将被后续let绑定到相同名称的阴影。

另见Shadowing and Nested function