f#重复定义

mat*_*ser 6 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
Run Code Online (Sandbox Code Playgroud)

为什么这个有用?确实c有重复的定义?

Bri*_*ian 8

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

另请参见阴影和嵌套函数