News for hackers. Stuff that matters.
Re:Dependency injection is dynamic scoping in disguise by scarmig on Thursday October 31, 2019 @11:12AM (#21409659)
It seems like this could be a language feature. The key would be an explicit declaration of the identifiers that the function expects to be bound in the calling context. So when declaring the function you optionally specify the dynamically scoped arguments (separately from regular arguments) that callers must have in scope. Doing so allows you to use those dynamic variables within the body of the function.
Re:Dependency injection is dynamic scoping in disguise by erik_seaberg on Thursday October 31, 2019 @12:22PM (#21410460)
Scala implicits. It's a curried arg list you can omit, but the compiler checks that you have implicit values of all the needed types in scope. Or you can pass whatever you want explicitly.

https://docs.scala-lang.org/tour/implicit-parameters.html

Re:Dependency injection is dynamic scoping in disguise by mavelikara on Thursday October 31, 2019 @05:08PM (#21413728)
Scala's implicit parameters and Haskell's typeclass instances are this, correct?
Re:Dependency injection is dynamic scoping in disguise by eru on Friday November 01, 2019 @06:20AM (#21417431)
I'm not sure how you'd override the typeclass instance you are going to get easily? (Haskell typically only allows a single instance per type.)

OCaml lets you swap out the equivalent of the typeclass instance. But it's a pain, because there system also means that you always have to specify which instance you want.