f # повторяющееся определение - PullRequest
6 голосов
/ 19 мая 2011

в 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 Ответ

8 голосов
/ 19 мая 2011

Это , слежка ;в области действия функции / класса / члена любые локальные let привязки будут затенены последующими let привязками к тому же имени.

См. также Shadowing and Nested function

...