Talk:Algebraic data type

message: I believe this page and tagged union refer to more or less the same concept, but they could be merged usefully. Does anyone disagree with this?
Derrick Coetzee 16:37, 4 Apr 2004 (UTC)
thread_title:  Tagged union 

message: Which languages support algebraic data types? Using What links here, I only see Haskell, ML, Nemerle, Hope, Pizza.
So Haskell uses : for list constructor operator and ML uses :: and they use the other for type annotations. I suppose it's ok to give both alternatives then. But do we need to give Nil and Cons without capital letters as that makes them look like functions? I know Lisp has nil and cons but then again Lisp doesn't have algebraic data types and constructors. If it's meant to be mathematical notation, I must say I'm not a fan of it either in programming-related articles.
My proposal would be to revert Nil and Cons to have capital letters. --TuukkaH 15:51, 15 February 2006 (UTC)
thread_title:  Languages 

message: This article appears to be talking about a concept specific to the ML family of languages.  This should be mentioned somewhere near the top. --macrakis (talk) 16:57, 26 December 2008 (UTC)
thread_title: ML-specific

message: The article could benefit from some pointers to more detailed discussion.
I came here looking for some information about the formal underpinnings of the type systems in languages like Haskell, ML and Typed Racket, but the bulk of the article proceeds by examples (which aren't particularly helpful unless someone already groks Haskell or ML syntax, in which case they probably don't have much of a problem), save a brief lurch into formality in the 'Theory' section.
The article does cross-refer to Type theory, but that's a very high level introduction to types in the context of formal logic.  The formal parts (ie the algebra) in the 'Theory' section are what I'm after, but they're not really explained in the cross-referred article.  A pointer to a review article or textbook-level introduction would be perfect.  I don't have any suggestions for that (that's what I came here looking for).
Overall, the article is indeed uneven.  Type theory is technical, and of interest only to people who are already at least vaguely familiar with algebraically typed languages and want to dig more.  It would therefore be useful to have, at the top, a remark this is not the article you're looking for, addressed to people who want to know the difference between dynamic and static types, say, and pointing to Type system. NormanGray (talk) 10:56, 17 August 2011 (UTC)
thread_title:  Not technical enough 

message: The explanation section mainly deals with the specifics of pattern matching but I think it's reasonable to assume the reader already knows what this is and/or how the Haskell code should be read. If they don't, they can read the article pattern matching (which is where the content under explanation could be moved to). The article is about algebraic data types after all; if you're not familiar with pattern matching, you should study that first before reading this article. Simeon (talk) 15:46, 5 April 2009 (UTC)
thread_title:  Explanation section 

message: I'd like to see one or two more sentences, in the first paragraph (or perhaps a new second paragraph), explaining what makes the Algebraic data type useful.  Why should I like it? 
The current opening paragraph is an excellent descriptive "what" statement. It nicely summarizes what the Algebraic data type is. 
The second paragraph gets right into technical details, and does so very well.
But there's something missing in between -- after the "what" statement, before the technical details, I'd like to see a sentence or two about how this is useful, and who might find it of interest and why. 
I'm a programmer myself, this is exactly the kind of thing that catches my attention, but I'm not familiar with the subject so I'll leave the editing to someone else. 
Karl gregory jones (talk) 03:35, 9 October 2010 (UTC)
thread_title:  What makes it useful?  

message: This article could really use a section on how algebraic data types are implemented - that is, how they are represented in memory. I would start it, but I know almost nothing about the subject.
Anecdotally, I agree with the people that say this article is, if anything, not technical enough. It certainly isn't too technical. It reads too much like a tutorial or a textbook, as well. For a somewhat abstruse topic, though, it's a good start.
Exercisephys (talk) 01:38, 18 July 2014 (UTC)
thread_title:  Section on Implementation 

message: In the 'Examples' section, for the 'Expression' data type Minus is defined as
   Minus Expression Expression
yet it is used later in an expression as
   (Minus (Number 1))
It should probably defined as unary in type definition, to allow for negation.  — Preceding unsigned comment added by 2620:0:1047:0:97A:A78A:439B:DC43 (talk) 10:22, 26 September 2016 (UTC)
thread_title:  Is Minus unary or binary? 

message: This article mentions algebraic data types in Coq, but I'm not sure if the article's references describe them. Is there any documentation that describes this feature in Coq? Jarble (talk) 01:38, 8 February 2019 (UTC)
replies: text: as always, RTFM : Calculus of Inductive Constructions, and basic standard libraries : Datatypes and Logic.   <STyx @ (I promote Geolocation) 13:56, 8 February 2019 (UTC)
thread_title:  Algebraic data types in Coq 

message: The "binary tree" example does not correspond to the binary trees on the page of the subject (which is linked to.) A tree is either empty, or it is a node with a value and two subtrees. The tree as defined will hold values only in leaf nodes. That seems a bit silly. --Lasse Hillerøe Petersen (talk) 19:36, 3 April 2020 (UTC)
thread_title:  Binary tree example wrong 

message: The page takes a rather ML-centric viewpoint. It would be good to take a broader perspective. A type-safe version of this type was first introduced by CLU (cf John Reynolds), where it was called a "oneof" type. "Variant type" is at least as standard a terminology as "algebraic data type", which I have always found to be verbose...and a little pompous. The "algebra" in question is a free algebra, which is to say that it has no equational theory. Personally, I don't find it enlightening to bake the connection to abstract algebra into the name; it feels like intellectual terrorism.
-- Andrew Myers (talk) 22:31, 7 May 2021 (UTC)
replies: text: The terminology is also ambiguous: a "variant type" refers to a dynamic type in some programming languages. Jarble (talk) 21:04, 9 July 2021 (UTC)
thread_title:  Terminology and history 

message: It says that an algebraic data type is a kind of composite type... and then not really much beyond that.
What's the difference?  AltoStev (talk) 00:31, 22 December 2022 (UTC)
thread_title:  Difference between algebraic data type and composite type 

message: "Algebraic data types were introduced in Hope, a small functional programming language developed in the 1970s at the University of Edinburgh"
As if e.g. Algol didn't have any algebraic types.
Gah. 77.16.77.62 (talk) 11:21, 10 March 2024 (UTC)
thread_title:  Bogus history