Comparing revisions for page Abstract data types in Haskell
Back to history list
== Headline ==
Abstract data types in Haskell
== Description ==
We look at functional programming techniques for implementing abstract data types (ADTs) and concrete data structures. In particular, we want to get a basic understanding of using familiar data types such as stacks. This is also an exercise in [[modularity]] (or [[information hiding]]). We look at several implementations of stacks and how we can hide these implementations behind a more abstract interface, while also focusing om the characterstic properties of stack. We also cover the domain of [[unparsing]] or [[pretty printing]] (i.e., rendering structures as text) to discuss a more advanced example of an abstract data type.
== Concepts ==
== Contributions ==
* [[Contribution:hughesPJ]]
* [[Concrete data type]]
* [[Abstract data type]]
* [[Stack]] as a key example of an abstract data type
* [[Reverse Polish notation]] as an illustrative application of Stack
* [[Functions as data]] as an advanced technique
* [[Unparsing]] or [[pretty printing]] as a domain benefitting from an ADT approach
== Technologies ==
* [[Combinator library]] [[Technology:HughesPJ]] for pretty printing
== Features ==
* [[Feature:Unparsing]]
== Contributions ==
* [[Contribution:hughesPJ]]
== Metas a domain benefitting from an ADT approach
== Metadata ==
* [[memberOf::Course:Lambdas in Koblenz]]
* [[dependsOn::Script:Data modeling in Haskell]]