Implicit parameters: Dynamic scoping with static types

ISSN: 07308566
96Citations
Citations of this article
35Readers
Mendeley users who have this article in their library.

Abstract

This paper introduces a language feature, called implicit parameters, that provides dynamically scoped variables within a statically-typed Hindley-Milner framework. Implicit parameters are lexically distinct from regular identifiers, and are bound by a special with construct whose scope is dynamic, rather than static as with let. Implicit parameters are treated by the type system as parameters that are not explicitly declared, but are inferred from their use. We present implicit parameters within a small call-by-name λ-calculus. We give a type system, a type inference algorithm, and several semantics. We also explore implicit parameters in the wider settings of call-by-need languages with overloading, and call-by-value languages with effects. As a witness to the former, we have implemented implicit parameters as an extension of Haskell within the Hugs interpreter, which we use to present several motivating examples.

Cite

CITATION STYLE

APA

Lewis, J. R., Launchbury, J., Meijer, E., & Shields, M. B. (2000). Implicit parameters: Dynamic scoping with static types. In Conference Record of the Annual ACM Symposium on Principles of Programming Languages (pp. 108–118).

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free