FSharpLint
FSharpLint copied to clipboard
separate warning for lambda length in single inner lambda bindings
I commonly use a pattern such as this:
let someFunction =
// expensive once-off initialization here
fun x y ->
// do stuff with this expensive data
This is a pretty common pattern I use to store data from expensive once-off computations. The major benefits of having shorter lambdas do not apply here - I could easily refactor to bring the parameters to the top of the function, but that would mean repeating the expensive call each time.
Instead, I'd suggest that length checking of such a pattern should use the standard 'function length' rather than global lambda length in cases where a single lambda is bound to a let as part of a parameterless value. Failing that please at least allow for the warnings on lambda length to be turned off for 'single-lambda' functions.
Thanks for pointing this case out, I think as you say this should be the default behaviour