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]]