File Download
There are no files associated with this item.
Links for fulltext
(May Require Subscription)
- Publisher Website: 10.1145/1932682.1869489
- Scopus: eid_2-s2.0-79551656252
- WOS: WOS:000286595800022
- Find via
Supplementary
- Citations:
- Appears in Collections:
Conference Paper: Type classes as objects and implicits
Title | Type classes as objects and implicits |
---|---|
Authors | |
Keywords | Abstract Datatypes C++ Concepts Scala Type Classes |
Issue Date | 2010 |
Citation | Acm Sigplan Notices, 2010, v. 45 n. 10, p. 341-360 How to Cite? |
Abstract | Type classes were originally developed in Haskell as a disciplined alternative to ad-hoc polymorphism. Type classes have been shown to provide a type-safe solution to important challenges in software engineering and programming languages such as, for example, retroactive extension of programs. They are also recognized as a good mechanism for concept-based generic programming and, more recently, have evolved into a mechanism for type-level computation. This paper presents a lightweight approach to type classes in object-oriented (OO) languages with generics using the Concept pattern and implicits (a type-directed implicit parameter passing mechanism). This paper also shows how Scala's type system conspires with implicits to enable, and even surpass, many common extensions of the Haskell type class system, making Scala ideally suited for generic programming in the large. Copyright © 2010 ACM. |
Persistent Identifier | http://hdl.handle.net/10722/188490 |
ISSN | 2020 SCImago Journal Rankings: 0.310 |
ISI Accession Number ID | |
References |
DC Field | Value | Language |
---|---|---|
dc.contributor.author | Oliveira, BCDS | en_US |
dc.contributor.author | Moors, A | en_US |
dc.contributor.author | Odersky, M | en_US |
dc.date.accessioned | 2013-09-03T04:08:42Z | - |
dc.date.available | 2013-09-03T04:08:42Z | - |
dc.date.issued | 2010 | en_US |
dc.identifier.citation | Acm Sigplan Notices, 2010, v. 45 n. 10, p. 341-360 | en_US |
dc.identifier.issn | 1523-2867 | en_US |
dc.identifier.uri | http://hdl.handle.net/10722/188490 | - |
dc.description.abstract | Type classes were originally developed in Haskell as a disciplined alternative to ad-hoc polymorphism. Type classes have been shown to provide a type-safe solution to important challenges in software engineering and programming languages such as, for example, retroactive extension of programs. They are also recognized as a good mechanism for concept-based generic programming and, more recently, have evolved into a mechanism for type-level computation. This paper presents a lightweight approach to type classes in object-oriented (OO) languages with generics using the Concept pattern and implicits (a type-directed implicit parameter passing mechanism). This paper also shows how Scala's type system conspires with implicits to enable, and even surpass, many common extensions of the Haskell type class system, making Scala ideally suited for generic programming in the large. Copyright © 2010 ACM. | en_US |
dc.language | eng | en_US |
dc.relation.ispartof | ACM SIGPLAN Notices | en_US |
dc.subject | Abstract Datatypes | en_US |
dc.subject | C++ Concepts | en_US |
dc.subject | Scala | en_US |
dc.subject | Type Classes | en_US |
dc.title | Type classes as objects and implicits | en_US |
dc.type | Conference_Paper | en_US |
dc.identifier.email | Oliveira, BCDS: oliveira@comp.nus.edu.sg | en_US |
dc.identifier.authority | Oliveira, BCDS=rp01786 | en_US |
dc.description.nature | link_to_subscribed_fulltext | en_US |
dc.identifier.doi | 10.1145/1932682.1869489 | en_US |
dc.identifier.scopus | eid_2-s2.0-79551656252 | en_US |
dc.relation.references | http://www.scopus.com/mlt/select.url?eid=2-s2.0-79551656252&selection=ref&src=s&origin=recordpage | en_US |
dc.identifier.volume | 45 | en_US |
dc.identifier.issue | 10 | en_US |
dc.identifier.spage | 341 | en_US |
dc.identifier.epage | 360 | en_US |
dc.identifier.isi | WOS:000286595800022 | - |
dc.publisher.place | United States | en_US |
dc.identifier.scopusauthorid | Oliveira, BCDS=12239474400 | en_US |
dc.identifier.scopusauthorid | Moors, A=26425256200 | en_US |
dc.identifier.scopusauthorid | Odersky, M=6701914594 | en_US |
dc.identifier.issnl | 1523-2867 | - |