问题
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?
回答1:
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
来源:https://stackoverflow.com/questions/6063681/f-duplicate-definition