Type class (original) (raw)

About DBpedia

Type class, (en català: classe de tipus) en ciència de la computació, és un sistema de tipus que suporta polimorfisme ad hoc. Type class va aparèixer per primer cop al llenguatge de programació Haskell. La seva definició parteix l'univers dels tipus en classes, segons si implementen o no la signatura.

Property Value
dbo:abstract Type class, (en català: classe de tipus) en ciència de la computació, és un sistema de tipus que suporta polimorfisme ad hoc. Type class va aparèixer per primer cop al llenguatge de programació Haskell. La seva definició parteix l'univers dels tipus en classes, segons si implementen o no la signatura. (ca) Typklassen sind ein Konstrukt der funktionalen Programmierung zur Implementierung von Ad-hoc-Polymorphie. Typklassen wurden für die Sprache Haskell entwickelt. Sie ähneln vom Prinzip her dem Konzept der Schnittstellen, haben aber nichts mit den Klassen der objektorientierten Programmierung zu tun. (de) In computer science, a type class is a type system construct that supports ad hoc polymorphism. This is achieved by adding constraints to type variables in parametrically polymorphic types. Such a constraint typically involves a type class T and a type variable a, and means that a can only be instantiated to a type whose members support the overloaded operations associated with T. Type classes were first implemented in the Haskell programming language after first being proposed by Philip Wadler and Stephen Blott as an extension to "eqtypes" in Standard ML, and were originally conceived as a way of implementing overloaded arithmetic and equality operators in a principled fashion.In contrast with the "eqtypes" of Standard ML, overloading the equality operator through the use of type classes in Haskell does not require extensive modification of the compiler frontend or the underlying type system. (en) (計算機科学の)型クラス(かたクラス、Type class)は、をサポートする型システムの機能である。のにを付加して、関数オーバーロードと演算子オーバーロードを実現するのが元々の目的になる。その型変数に当てはめられたデータ型は、それへの制約でカテゴライズされることになる。 典型的な型クラスは、型クラスTと型変数aとそのaを引数/返り値にしたの構成で宣言される。aに型Xを当てはめたインスタンス化宣言でXはTで制約されて、その型Xを引数/返り値にする関数と演算子もインスタンス化される。総称関数も型Xでインスタンス化される。 型クラスは、Standard MLのeqtypesで提唱された後に、Haskellで初めて導入されている。その主な目的はなどによる型システムの拡張的補正なしの関数オーバーロードの実現である。これはでのプログラムの形式的検証に必須になる。また、モナドの実践も容易にする。 その他の言語では、アドホック多相をサブタイプ多相に置き換えて、インターフェースとジェネリクスを融合したような機能にされていることが多い。それはレコードや構造体やオブジェクトに実装されて、その振る舞いをカテゴライズする。 (ja) 在计算机科学中,类型类(type class),是支持特设多态的类型系统构造。这是通过向参数多态类型的类型变量增加约束完成的。这种约束典型的涉及到一个类型类T和一个a,并意味着a所能实例化的类型,其成员必须支持关联于T的重载运算。 类型类首先在Haskell中实现,当时Philip Wadler和Stephen Blott提出它,作为对Standard ML的eqtype的扩展,并且最初构想为以本原方式实现重载算术及等式算符的一种途径。对比于Standard ML的“eqtypes”,在Haskell中通过使用类型类重载等式算符,不要求编译器前端或底层类型系统的广泛修改。 自从它们创立之后,已经发现了类型类的很多其他应用。 (zh)
dbo:wikiPageExternalLink http://www.cs.uu.nl/wiki/pub/Afp/CourseSchedule/AFP-2008.3-12.pdf http://www.haskell.org/pipermail/haskell-cafe/2007-August/030097.html) http://www.haskell.org/tutorial/classes.html http://okmij.org/ftp/Computation/typeclass.html http://research.microsoft.com/~simonpj/Papers/type-class-design-space
dbo:wikiPageID 3647181 (xsd:integer)
dbo:wikiPageLength 21401 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID 1124045388 (xsd:integer)
dbo:wikiPageWikiLink dbr:Scala_(programming_language) dbr:Coq_(proof_assistant) dbc:Articles_with_example_Haskell_code dbr:Hugs_(interpreter) dbr:Concepts_(C++) dbr:Coq dbr:Rust_(programming_language) dbr:Clean_(programming_language) dbr:Glasgow_Haskell_Compiler dbr:Monad_(functional_programming) dbr:Standard_ML dbr:Computer_science dbr:Functional_dependency dbr:Operator_overloading dbr:Parametric_polymorphism dbr:Polymorphism_(computer_science) dbc:Functional_programming dbr:C++ dbr:Ad_hoc_polymorphism dbr:Total_order dbr:Type_system dbc:Data_types dbr:Kind_(type_theory) dbr:Haskell_(programming_language) dbc:Type_theory dbr:Trait_(computer_programming) dbr:Philip_Wadler dbr:Mercury_(programming_language) dbr:OCaml dbr:Object_type_(object-oriented_programming) dbr:Programming_idiom dbr:Set_(abstract_data_type) dbr:Type_inference dbr:Type_family dbr:Type_variable dbr:Class_(computer_science) dbr:Agda_(theorem_prover) dbr:Simon_Peyton-Jones dbr:Compiler_frontend dbr:Multimethod dbr:Type-directed_programming
dbp:wikiPageUsesTemplate dbt:About dbt:Citation_needed dbt:Cite_book dbt:Cite_journal dbt:Distinguish dbt:Explain dbt:Refbegin dbt:Refend dbt:Reflist dbt:Rp dbt:Unreferenced_section dbt:Data_types
dcterms:subject dbc:Articles_with_example_Haskell_code dbc:Functional_programming dbc:Data_types dbc:Type_theory
gold:hypernym dbr:System
rdf:type owl:Thing yago:Abstraction100002137 yago:Communication100033020 yago:Language106282651 yago:WikicatFunctionalLanguages
rdfs:comment Type class, (en català: classe de tipus) en ciència de la computació, és un sistema de tipus que suporta polimorfisme ad hoc. Type class va aparèixer per primer cop al llenguatge de programació Haskell. La seva definició parteix l'univers dels tipus en classes, segons si implementen o no la signatura. (ca) Typklassen sind ein Konstrukt der funktionalen Programmierung zur Implementierung von Ad-hoc-Polymorphie. Typklassen wurden für die Sprache Haskell entwickelt. Sie ähneln vom Prinzip her dem Konzept der Schnittstellen, haben aber nichts mit den Klassen der objektorientierten Programmierung zu tun. (de) (計算機科学の)型クラス(かたクラス、Type class)は、をサポートする型システムの機能である。のにを付加して、関数オーバーロードと演算子オーバーロードを実現するのが元々の目的になる。その型変数に当てはめられたデータ型は、それへの制約でカテゴライズされることになる。 典型的な型クラスは、型クラスTと型変数aとそのaを引数/返り値にしたの構成で宣言される。aに型Xを当てはめたインスタンス化宣言でXはTで制約されて、その型Xを引数/返り値にする関数と演算子もインスタンス化される。総称関数も型Xでインスタンス化される。 型クラスは、Standard MLのeqtypesで提唱された後に、Haskellで初めて導入されている。その主な目的はなどによる型システムの拡張的補正なしの関数オーバーロードの実現である。これはでのプログラムの形式的検証に必須になる。また、モナドの実践も容易にする。 その他の言語では、アドホック多相をサブタイプ多相に置き換えて、インターフェースとジェネリクスを融合したような機能にされていることが多い。それはレコードや構造体やオブジェクトに実装されて、その振る舞いをカテゴライズする。 (ja) 在计算机科学中,类型类(type class),是支持特设多态的类型系统构造。这是通过向参数多态类型的类型变量增加约束完成的。这种约束典型的涉及到一个类型类T和一个a,并意味着a所能实例化的类型,其成员必须支持关联于T的重载运算。 类型类首先在Haskell中实现,当时Philip Wadler和Stephen Blott提出它,作为对Standard ML的eqtype的扩展,并且最初构想为以本原方式实现重载算术及等式算符的一种途径。对比于Standard ML的“eqtypes”,在Haskell中通过使用类型类重载等式算符,不要求编译器前端或底层类型系统的广泛修改。 自从它们创立之后,已经发现了类型类的很多其他应用。 (zh) In computer science, a type class is a type system construct that supports ad hoc polymorphism. This is achieved by adding constraints to type variables in parametrically polymorphic types. Such a constraint typically involves a type class T and a type variable a, and means that a can only be instantiated to a type whose members support the overloaded operations associated with T. (en)
rdfs:label Type class (ca) Typklasse (Informatik) (de) 型クラス (ja) Type class (en) Класс типов (ru) 类型类 (zh)
owl:differentFrom dbr:Class_(computer_programming)
owl:sameAs freebase:Type class wikidata:Type class dbpedia-ca:Type class dbpedia-de:Type class dbpedia-ja:Type class dbpedia-ru:Type class dbpedia-zh:Type class https://global.dbpedia.org/id/Nop1
prov:wasDerivedFrom wikipedia-en:Type_class?oldid=1124045388&ns=0
foaf:isPrimaryTopicOf wikipedia-en:Type_class
is dbo:wikiPageDisambiguates of dbr:Class
is dbo:wikiPageRedirects of dbr:Type_Class dbr:Type_classes dbr:Typeclass
is dbo:wikiPageWikiLink of dbr:PureScript dbr:Bounded_Type dbr:Enumerated_type dbr:Concepts_(C++) dbr:Rust_(programming_language) dbr:Generalized_algebraic_data_type dbr:Generic_programming dbr:Elm_(programming_language) dbr:Glasgow_Haskell_Compiler dbr:Monad_(functional_programming) dbr:Concept_(generic_programming) dbr:Control_flow dbr:Functor dbr:Functor_(functional_programming) dbr:Parametric_polymorphism dbr:Polymorphism_(computer_science) dbr:Strategy_pattern dbr:Ad_hoc_polymorphism dbr:Class dbr:Haskell_features dbr:Kind_(type_theory) dbr:Protocol_(object-oriented_programming) dbr:Haskell dbr:Hindley–Milner_type_system dbr:Abstract_type dbr:Top_type dbr:Trait_(computer_programming) dbr:Arrow_(computer_science) dbr:Idris_(programming_language) dbr:Operator_(computer_programming) dbr:Map_(higher-order_function) dbr:Serialization dbr:Expression_problem dbr:Extension_method dbr:Exception_handling_syntax dbr:Variadic_function dbr:Type_family dbr:Three-way_comparison dbr:Type_Class dbr:Type_classes dbr:Typeclass
is rdfs:seeAlso of dbr:Hindley–Milner_type_system
is foaf:primaryTopic of wikipedia-en:Type_class