F# повторяющееся определение

В 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 ответ

Решение

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

Смотрите также Shadowing и Nested function

Другие вопросы по тегам