2010
DOI: 10.1017/s0956796810000171
|View full text |Cite
|
Sign up to set email alerts
|

Scala for generic programmers

Abstract: 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,… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
14
0

Year Published

2010
2010
2019
2019

Publication Types

Select...
4
3
2

Relationship

0
9

Authors

Journals

citations
Cited by 18 publications
(14 citation statements)
references
References 49 publications
0
14
0
Order By: Relevance
“…DGP can be viewed as an advanced form of generic programming in which the structure of types is used to derive generic algorithms. Oliveira and Gibbons (2008) show that Scala is particularly well-suited for DGP and that it is, in some ways, better than Haskell. This is partly due to the flexibility of implicits in comparison with type classes.…”
Section: Real-world Applicationsmentioning
confidence: 98%
See 1 more Smart Citation
“…DGP can be viewed as an advanced form of generic programming in which the structure of types is used to derive generic algorithms. Oliveira and Gibbons (2008) show that Scala is particularly well-suited for DGP and that it is, in some ways, better than Haskell. This is partly due to the flexibility of implicits in comparison with type classes.…”
Section: Real-world Applicationsmentioning
confidence: 98%
“…Several authors noted that Haskell type classes can be limiting for certain applications due to the impossibility of explicitly passing arguments and abstracting over type classes (Dijkstra and Swierstra 2005;Hughes 1999;Kahl and Scheffczyk 2001;Lämmel and Jones 2005;Oliveira and Gibbons 2008;Oliveira and Sulzmann 2008). Thus, there have been a number of proposals aimed at lifting some of these restrictions (Dijkstra and Swierstra 2005;Kahl and Scheffczyk 2001;Orchard and Schrijvers 2010).…”
Section: Type Classes Javagi and Conceptsmentioning
confidence: 99%
“…Higher-rank polymorphism (i.e. polymorphism over type constructors) allows more forms of generic programming [24]. We believe both extensions to be important in the future, and like the other features mentioned, Virgil's core design has done nothing to preclude them.…”
Section: Future Workmentioning
confidence: 99%
“…Aspects [23] and open-classes [17] are powerful generic programming techniques for adapting programs by augmenting their behavior in existing classes [24,25]. Other languages that provide support for generic programming are Haskell and Scala [26]. The use of Haskell has been investigated [27] to specify refactorings based on highlevel graph algorithms that could be generic accross a variety of languages (XML, Pascal, Java), but its applicability does not seem to go beyond a proof of concept.…”
Section: Related Workmentioning
confidence: 99%