6

in F# powerpack math provider source code: I saw this (in 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

Why does this complile? does c get duplicate definition?

Guy Coder
  • 24,501
  • 8
  • 71
  • 136
matlabdbuser
  • 848
  • 6
  • 10

1 Answers1

9

This is shadowing; at function/class/member scope, any local let bindings will be shadowed by subsequent let bindings to the same name.

See also Shadowing and Nested function

Community
  • 1
  • 1
Brian
  • 117,631
  • 17
  • 236
  • 300