The Environment as an Argument

Context-Aware Functional Programming
  • Pedro M. Martins
  • Julie A. McCann
  • Susan Eisenbach
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7149)


Context-awareness as defined in the setting of Ubiquitous Computing [3] is all about expressing the dependency of a specific computation upon some implicit piece of information. The manipulation and expression of such dependencies may thus be neatly encapsulated in a language where computations are first-class values. Perhaps surprisingly however, context-aware programming has not been explored in a functional setting, where first-class computations and higher-order functions are commonplace. In this paper we present an embedded domain-specific language (EDSL) for constructing context-aware applications in the functional programming language Haskell.


Contextual Information Contextual Dependency Implicit Argument Functional Programming Language Context Provider 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Atkey, R.: Parameterised notions of computation. Journal of Functional Programming 19(3-4), 335 (2009)MathSciNetCrossRefzbMATHGoogle Scholar
  2. 2.
    Bardram, J.: The Java Context Awareness Framework (JCAF)–a service infrastructure and programming framework for context-aware applications. Pervasive Computing, 98–115 (2005)Google Scholar
  3. 3.
    Dey, A., Abowd, G.: Towards a better understanding of context and context-awareness. In: CHI 2000 Workshop on the What, Who, Where, When, and How of Context-Awareness, vol. 4, pp. 1–6. Citeseer (2000)Google Scholar
  4. 4.
    Dey, A., Abowd, G., Salber, D.: A conceptual framework and a toolkit for supporting the rapid prototyping of context-aware applications. Human-Computer Interaction 16(2), 97–166 (2001)CrossRefGoogle Scholar
  5. 5.
    Elliott, C.: Push-pull functional reactive programming. In: Haskell Symposium (2009)Google Scholar
  6. 6.
    Kiselyov, O., Lämmel, R., Schupke, K.: Strongly typed heterogeneous collections. In: Haskell 2004: Proceedings of the ACM SIGPLAN Workshop on Haskell, pp. 96–107. ACM Press (2004)Google Scholar
  7. 7.
    Lewis, J.R., Launchbury, J., Meijer, E., Shields, M.B.: Implicit parameters: dynamic scoping with static types. In: Proceedings of the 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2000, pp. 108–118. ACM, New York (2000)Google Scholar
  8. 8.
    Lieberman, H., Selker, T.: Out of context: Computer systems that adapt to, and learn from, context. IBM Systems Journal 39(3.4), 617–632 (2000)CrossRefGoogle Scholar
  9. 9.
    McBride, C., Paterson, R.: Applicative programming with effects. Journal of Functional Programming 18(01), 1–13 (2007)zbMATHGoogle Scholar
  10. 10.
    Pinto, H., Gómez-Pérez, A., Martins, J.: Some issues on ontology integration. In: IJCAI 1999 Workshop on Ontologies and Problem-Solving Methods (KRR5), Citeseer (1999)Google Scholar
  11. 11.
    Sackman, M., Eisenbach, S.: Safely Speaking in Tongues: Statically Checking Domain Specific Languages in Haskell. In: LDTA 2009 (March 2009)Google Scholar
  12. 12.
    Sampson, C., Kotthoff, L.: Mhailist: Haskell mailing list manager (April 2010),

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Pedro M. Martins
    • 1
  • Julie A. McCann
    • 1
  • Susan Eisenbach
    • 1
  1. 1.Imperial College LondonUK

Personalised recommendations