MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Views for Standard ML (1998) [17 citations — 0 self]

by Chris Okasaki
In SIGPLAN Workshop on ML
Add To MetaCart

Abstract:

In Standard ML, as in many other languages, programmers are often confronted with an unpleasant choice between pattern matching and abstraction. Because pattern matching can only be performed on concrete datatypes, programmers must often sacrifice either the convenience of pattern matching or the engineering benefits of abstraction. Views relieve this tension by allowing pattern matching on abstract datatypes. We propose a modest extension of Standard ML with views and define its semantics via a source-to-source translation back into Standard ML without views. We claim no particular technical innovation; rather, we have attempted to engineer a solution that blends as seamlessly as possible with the rest of the language, including the module system and the stateful features of the language. 1 Introduction The convenience of pattern matching is one of the most seductive aspects of languages like Standard ML [6]. Not until the newcomer tries to write large programs does she encounter the...

Citations

505 D.: The Definition of Standard ML (Revised – Milner, Tofte, et al. - 1997
114 Report on the Functional Programming Language Haskell: a non{strict, purely functional language. Sigplan Notices – Hudak, Peyton-Jones, et al. - 1992
104 Views: A way for pattern matching to cohabit with data abstraction – WADLER - 1987
25 Pattern Matching with Abstract Data Types – Burton, Cameron - 1993
14 Abstract value constructors – Aitken, Reppy - 1992
13 A New Look at Pattern Matching in Abstract Data Types – Gostanza, Pena, et al. - 1996
10 Active Patterns – Erwig - 1996
1 A (sic) extension to haskell 1.3 for views. Distributed on the Haskell mailing list – Burton, Meijer, et al. - 1996
1 A new view of guards. Distributed on the Haskell mailing list – Jones, S - 1997