ABSTRACT
We present a new model, based on monads, for performing input/output in a non-strict, purely functional language. It is composable, extensible, efficient, requires no extensions to the type system, and extends smoothly to incorporate mixed-language working and in-place array updates.
- S Abramsky{1990}, "Computational interpretations of linear logic," DOC 90/20, Dept of Computing, Imperial College.Google Scholar
- PM Achten, JHG van Groningen gz MJ Plasmeijer {1992}, "High-level specification of I/O in functional languages," in Proc Glasgow Workshop on FunctionaI Programming, Launchbury et al, ed., Springer Verlag. Google Scholar
Digital Library
- A Bloss {Sept 1989}, "Update analysis and the efficient implementation of functional aggregates," in FunctionaI Programming Languages and Computer Architecture, London, ACM. Google Scholar
Digital Library
- A Dwelly{Sept 1989}, "Dialogue combinators and dynamic user interfaces," in Functional Programming Languages and Computer Architecture London, ACM. Google Scholar
Digital Library
- DK Gifford & JM Lucassen {Aug 1986}, "Integrating functional and imperative programming," in ACM Conference on Lisp and Functional Programming, MIT, ACM, 28-38. Google Scholar
Digital Library
- J-Y Girard {1987}, "Linear Logic," Theoretical Computer Science 50, 1-102. Google Scholar
Digital Library
- A Gordon{Feb 1989}, "PFL+: a kernel scheme for functional I/O," TR 160, Computer Lab, University of Cambridge.Google Scholar
- JC Guzman & P Hudak{1990}, "Single-threaded polymorphic lambda calculus," in Proc 5th Annual IEEE Symposium on Logic in Computer Science.Google Scholar
- K Hammond, PL Wadler & D Brady {1991}, "Imperate: be imperative," Department of Computer Science, Univ of Glasgow.Google Scholar
- P Hudak{July 1992}, "Continuation-based mutable abstract datatypes, or how to have your state and munge it too," YALEU/DCS/RR-914, Department of Computer Science, Yale University.Google Scholar
- P Hudak, SL Peyton Jones, PL Wadler, Arvind, B Boutel, J Fairbairn, J Fasel, lVt Guzman, K ttammond, J Hughes, T Johnsson, R. Kieburtz, RS Nikhil, W Partain &: J Paterson {May 1992}, "Report on the functional programming language Haskell, Version 1.2," SIGPLAN Notices 27.Google Scholar
- P Hudak & RS Sundaresh{March 1989}, "On the expressiveness of purely-functional I/O systems." YALEU/DCS/RR-665, Department of Computer Science, Yale University.Google Scholar
- Paul Hudak {Aug 1986}, "A semantic model of reference counting and its abstraction," Proc A CM Conference on Lisp and Functional Programming. Google Scholar
Digital Library
- E Ireland{March 1989}, "Writing interactive and fileprocessing functional programs," MSc thesis, Victoria University of Wellington.Google Scholar
- P Jouvelot & D Gifford {Jan 1991}, "Algebraic reconstruction of types and effects," in 18'th ACM Symposium on Principles of Programming Languages (POPL), Orlando, ACM. Google Scholar
Digital Library
- Kent Karlsson{1982}, "Nebula- a functional operating system," Chalmers Inst, Goteborg.Google Scholar
- BW Kernighan & DM Ritchie {1978}, The C programming language, Prentice Hall. Google Scholar
Digital Library
- E Moggi{june 1989}, "Computational lambda calculus and monads," in Logic in Computer Science, California, IEEE. Google Scholar
Digital Library
- JT O'Donnell{1985}, "Dialogues: a basis for constructing programming environments," in t~roc A CM Symposium on Language lssues in Programming Environments, Seattle~ ACM, 19-27. Google Scholar
Digital Library
- N Perry {1991}, "The implementation of prac.~ical fun,> tional programming languages," PhD thesis, Inlperial College, London.Google Scholar
- SL Peyton Jones{1992}, "Implementing lazy functional languages on stock hardware: the SpirMess Tagless G-machine," JournM of Functionaj Progranlruing (to appear).Google Scholar
- SL Peyton Jones {Oct 1988}, "Converting streams to continuations and vice versa," Electronic mail on Haskell mailing list.Google Scholar
- SL Peyton jones & J Launchbury {Sept 1991}, "Unboxed values as first class citizens," in Functional Programming Languages and Computer Architeo. tufa, Boston, Hughes, ed., LNCS 523, Springer Verlag. Google Scholar
Digital Library
- J Reynolds {1981}, "The essence of Algol," in Algorithmic Languages, de Bakker & van Vliet, ads., North Holland, 345-372.Google Scholar
- J Reynolds {1989}, "Syntactic control of interference, part II," in International Colloquium on Automata, Languages, and Programming. Google Scholar
Digital Library
- DA Schmidt {Apr 1985}, "Detecting global variables in denotational specifications," TOPLAS 7. 299-310. Google Scholar
Digital Library
- V Swamp, US Reddy &: E ireland {Sept 1991}, "Assignments for applicative languages," it, Functional Programming Languages" and Computer Architecture, Boston, Hughes, ed., LNCS 523, Springer Verlag, 192-214. Google Scholar
Digital Library
- SJ Thompson {1989}, "Interactive funciional programs- a method and a formal semantics," in Declaratiw~. Programming, DA Turner, ed., Addison Wesley.Google Scholar
- M Tofte {Nov 1990}, "Type inference for polymorphic references," Information and Colnputation 89. Google Scholar
Digital Library
- PL Wadler {1990}, "Linear types can change the world!," in Programming concepts and methods, M Bro3" & C Jones, ads., North Holland.Google Scholar
- PL Wadler{Jan 1992}, "The essence of functional programming," in Proc Principles of Programming Languages, ACM. Google Scholar
Digital Library
- PL Wadler{june 1990}, "Comprehending monads," in Proc ACM Conference on Lisp and Functional Programming, Nice, ACM. Google Scholar
Digital Library
- D Wakeling{Nov 1990}, "Linearity alld laziness," Phi) thesis, Department of Computer Scie~me, University of York.Google Scholar
Index Terms
Imperative functional programming
Recommendations
When is a functional program not a functional program?
In an impure functional language, there are programs whose behaviour is completely functional (in that they behave extensionally on inputs), but the functions they compute cannot be written in the purely functional fragment of the language. That is, the ...
When is a functional program not a functional program?
In an impure functional language, there are programs whose behaviour is completely functional (in that they behave extensionally on inputs), but the functions they compute cannot be written in the purely functional fragment of the language. That is, the ...





Comments