Miranda: a non-strict functional language with polymorphic types
Proc. of a conference on Functional programming languages and computer architecture
Lambda lifting: transforming programs to recursive equations
Proc. of a conference on Functional programming languages and computer architecture
Proc. of a conference on Functional programming languages and computer architecture
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Code generation techniques for functional languages
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
A combinator-based compiler for a functional language
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
A critique of Abelson and Sussman or why calculating is better than scheming
ACM SIGPLAN Notices
Recursive Pattern Matching on concrete data types
ACM SIGPLAN Notices
Conception, evolution, and application of functional programming languages
ACM Computing Surveys (CSUR)
Kaleidoscope: mixing objects, constraints, and imperative programming
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
A new set interpretation of the inheritance relation and its checking
ACM SIGPLAN OOPS Messenger
Online partial deduction of logic programs
PEPM '93 Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Using Hindley-Milner type inference to optimise list representation
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Purely functional random-access lists
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
A new look at pattern matching in abstract data types
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Functional programming with graphs
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Statically checkable pattern abstractions
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
On embedding a microarchitectural design language within Haskell
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Breadth-first numbering: lessons from a small exercise in algorithm design
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Type-based hot swapping of running modules (extended abstract)
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
A simple implementation technique for priority search queues
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
An implementation of parallel pattern-matching via concurrent haskell
ACSC '02 Proceedings of the twenty-fifth Australasian conference on Computer science - Volume 4
Shortcut fusion for accumulating parameters & zip-like functions
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
PADL '00 Proceedings of the Second International Workshop on Practical Aspects of Declarative Languages
JMatch: Iterable Abstract Pattern Matching for Java
PADL '03 Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
VM lambda: A Functional Calculusfor Scientific Discovery
FLOPS '02 Proceedings of the 6th International Symposium on Functional and Logic Programming
Changing Data Structures in Type Theory: A Study of Natural Numbers
TYPES '00 Selected papers from the International Workshop on Types for Proofs and Programs
RtA '99 Proceedings of the 10th International Conference on Rewriting Techniques and Applications
ASM '00 Proceedings of the International Workshop on Abstract State Machines, Theory and Applications
TYPES '00 Selected papers from the International Workshop on Types for Proofs and Programs
Cycle therapy: a prescription for fold and unfold on regular trees
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
Journal of Functional Programming
Inductive graphs and functional graph algorithms
Journal of Functional Programming
Journal of Functional Programming
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Formal validation of pattern matching code
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
High-level views on low-level representations
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
TypeCase: a design pattern for type-indexed functions
Proceedings of the 2005 ACM SIGPLAN workshop on Haskell
A short survey of isomorphisms of types
Mathematical Structures in Computer Science
A computational view of implicit coercions in type theory
Mathematical Structures in Computer Science
Using predicate fields in a highly flexible industrial control system
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Polymorphic variants in Haskell
Proceedings of the 2006 ACM SIGPLAN workshop on Haskell
Type-safe modular hash-consing
Proceedings of the 2006 workshop on ML
Proceedings of the 2006 workshop on ML
Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem
ACM Transactions on Programming Languages and Systems (TOPLAS) - Special issue on POPL 2005
A history of Haskell: being lazy with class
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Extensible pattern matching via a lightweight language extension
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Bidirectionalization transformation based on automatic derivation of view complement functions
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Why it's nice to be quoted: quasiquoting for haskell
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Bialgebra views: a way for polytypic programming to cohabit with data abstraction
Proceedings of the ACM SIGPLAN workshop on Generic programming
MPC '08 Proceedings of the 9th international conference on Mathematics of Program Construction
Journal of Functional Programming
Parsing C/C++ Code without Pre-processing
CC '09 Proceedings of the 18th International Conference on Compiler Construction: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Sharing classes between families
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Bidirectional Transformations: A Cross-Discipline Perspective
ICMT '09 Proceedings of the 2nd International Conference on Theory and Practice of Model Transformations
Lazy Composition of Representations in Java
SC '09 Proceedings of the 8th International Conference on Software Composition
Canonical Forms in Interactive Exercise Assistants
Calculemus '09/MKM '09 Proceedings of the 16th Symposium, 8th International Conference. Held as Part of CICM '09 on Intelligent Computer Mathematics
Dynamic ADTs: a "don't ask, don't tell" policy for data abstraction
Proceedings of the 2007 International Lisp Conference
Thorn: robust, concurrent, extensible scripting on the JVM
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
A survey of strategies in rule-based program transformation systems
Journal of Symbolic Computation
Automatic partial inversion of inductively sequential functions
IFL'06 Proceedings of the 18th international conference on Implementation and application of functional languages
On the implementation of construction functions for non-free concrete data types
ESOP'07 Proceedings of the 16th European conference on Programming
Observational equivalence and program extraction in the Coq proof assistant
TLCA'03 Proceedings of the 6th international conference on Typed lambda calculi and applications
Generic programming with dependent types
SSDGP'06 Proceedings of the 2006 international conference on Datatype-generic programming
Revealing the X/O impedance mismatch: changing lead into gold
SSDGP'06 Proceedings of the 2006 international conference on Datatype-generic programming
Translation correctness for first-order object-oriented pattern matching
APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
Matchete: paths through the pattern matching jungle
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
Implementing joins using extensible pattern matching
COORDINATION'08 Proceedings of the 10th international conference on Coordination models and languages
A transformational approach which combines size inference and program optimization
SAIG'01 Proceedings of the 2nd international conference on Semantics, applications, and implementation of program generation
Gradual refinement: blending pattern matching with data abstraction
MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
Pointfree expression and calculation: from quantification to temporal logic
Formal Methods in System Design
Joinads: a retargetable control-flow construct for reactive, parallel and concurrent programming
PADL'11 Proceedings of the 13th international conference on Practical aspects of declarative languages
Exploiting algebra/coalgebra duality for program fusion extensions
Proceedings of the Eleventh Workshop on Language Descriptions, Tools and Applications
View of computer algebra data from Coq
MKM'11 Proceedings of the 18th Calculemus and 10th international conference on Intelligent computer mathematics
Extending monads with pattern matching
Proceedings of the 4th ACM symposium on Haskell
Monads, zippers and views: virtualizing the monad stack
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Haskell boards the ferry: database-supported program execution for Haskell
IFL'10 Proceedings of the 22nd international conference on Implementation and application of functional languages
Pattern matching for object-like structures in the Go programming language
Proceedings of the 6th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems
“Scrap your boilerplate” reloaded
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Pattern matching for the masses using custom notations
Science of Computer Programming
Epigram: practical programming with dependent types
AFP'04 Proceedings of the 5th international conference on Advanced Functional Programming
Refactoring functional programs
AFP'04 Proceedings of the 5th international conference on Advanced Functional Programming
Mappings make data processing go 'round
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
MPC'06 Proceedings of the 8th international conference on Mathematics of Program Construction
Recursion diagrams: ideas for a geometry of formal methods
3FACS'98 Proceedings of the 3rd BCS-FACS conference on Northern Formal Methods
Proceedings of the 8th symposium on Dynamic languages
Matching objects with patterns
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Reconciling exhaustive pattern matching with objects
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Science of Computer Programming
Type-changing rewriting and semantics-preserving transformation
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
Pattern matching and data abstraction are important concepts in designing programs, but they do not fit well together. Pattern matching depends on making public a free data type representation, while data abstraction depends on hiding the representation. This paper proposes the views mechanism as a means of reconciling this conflict. A view allows any type to be viewed as a free data type, thus combining the clarity of pattern matching with the efficiency of data abstraction.