Scala for Generic Programmers

Datatype-generic programming involves parametrization by the shape of data, in the form of type constructors such as 'list of'. Most approaches to datatype-generic programming are developed in the lazy functional programming language Haskell. We argue that the functional object-oriented la...

Täydet tiedot

Bibliografiset tiedot
Päätekijät: Oliveira, B, Gibbons, J, ACM
Aineistotyyppi: Conference item
Julkaistu: 2008
_version_ 1826301574654197760
author Oliveira, B
Gibbons, J
ACM
author_facet Oliveira, B
Gibbons, J
ACM
author_sort Oliveira, B
collection OXFORD
description Datatype-generic programming involves parametrization by the shape of data, in the form of type constructors such as 'list of'. Most approaches to datatype-generic programming are developed in the lazy functional programming language Haskell. We argue that the functional object-oriented language Scala is in many ways a better setting. Not only does Scala provide equivalents of all the necessary functional programming features (such parametric polymorphism, higher-order functions, higher-kinded type operations, and type- and constructor-classes), but it also provides the most useful features of object-oriented languages (such as subtyping, overriding, traditional single inheritance, and multiple inheritance in the form of traits). We show how this combination of features benefits datatype-generic programming, using three different approaches as illustrations. Copyright © 2008 ACM.
first_indexed 2024-03-07T05:34:28Z
format Conference item
id oxford-uuid:e36928ae-ec6c-4b7d-8f2d-a93bf60273a6
institution University of Oxford
last_indexed 2024-03-07T05:34:28Z
publishDate 2008
record_format dspace
spelling oxford-uuid:e36928ae-ec6c-4b7d-8f2d-a93bf60273a62022-03-27T10:08:52ZScala for Generic ProgrammersConference itemhttp://purl.org/coar/resource_type/c_5794uuid:e36928ae-ec6c-4b7d-8f2d-a93bf60273a6Symplectic Elements at Oxford2008Oliveira, BGibbons, JACMDatatype-generic programming involves parametrization by the shape of data, in the form of type constructors such as 'list of'. Most approaches to datatype-generic programming are developed in the lazy functional programming language Haskell. We argue that the functional object-oriented language Scala is in many ways a better setting. Not only does Scala provide equivalents of all the necessary functional programming features (such parametric polymorphism, higher-order functions, higher-kinded type operations, and type- and constructor-classes), but it also provides the most useful features of object-oriented languages (such as subtyping, overriding, traditional single inheritance, and multiple inheritance in the form of traits). We show how this combination of features benefits datatype-generic programming, using three different approaches as illustrations. Copyright © 2008 ACM.
spellingShingle Oliveira, B
Gibbons, J
ACM
Scala for Generic Programmers
title Scala for Generic Programmers
title_full Scala for Generic Programmers
title_fullStr Scala for Generic Programmers
title_full_unstemmed Scala for Generic Programmers
title_short Scala for Generic Programmers
title_sort scala for generic programmers
work_keys_str_mv AT oliveirab scalaforgenericprogrammers
AT gibbonsj scalaforgenericprogrammers
AT acm scalaforgenericprogrammers