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 ScholarDigital Library
- A Bloss {Sept 1989}, "Update analysis and the efficient implementation of functional aggregates," in FunctionaI Programming Languages and Computer Architecture, London, ACM. Google ScholarDigital Library
- A Dwelly{Sept 1989}, "Dialogue combinators and dynamic user interfaces," in Functional Programming Languages and Computer Architecture London, ACM. Google ScholarDigital 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 ScholarDigital Library
- J-Y Girard {1987}, "Linear Logic," Theoretical Computer Science 50, 1-102. Google ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital Library
- E Moggi{june 1989}, "Computational lambda calculus and monads," in Logic in Computer Science, California, IEEE. Google ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital Library
- DA Schmidt {Apr 1985}, "Detecting global variables in denotational specifications," TOPLAS 7. 299-310. Google ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital Library
- PL Wadler{june 1990}, "Comprehending monads," in Proc ACM Conference on Lisp and Functional Programming, Nice, ACM. Google ScholarDigital 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
The Illinois functional programming interpreter
SIGPLAN '87: Papers of the Symposium on Interpreters and interpretive techniquesThe Illinois Functional Programming (IFP) language is a modified version of Backus' FP(1). IFP has the same side-effect free combinator style of Backus FP, while introducing an ALGOL-like syntax and structure. While IFP superficially appears to be an ...
Projecting functional models of imperative programs
Functional modelling [17,29] enables functional reasoning methods to be applied to programs written in imperative languages. It is, however, the view of many workers [4, 24] that it is not the notation in which a program is written, but the sheer size ...
Comments