Where does the name "Algebraic data types" come from?

Dear Café, What makes "algebraic data types" algebraic? There are at least two common explanations in use: 1. Algebraic data types are defined using sums and products of types, by analogy with, well, concepts from algebra. 2. Algebraic data types are initial algebras. There are numerous blogs online explaining "algebraic data types" that way, with a large majority adopting the more approachable explanation (1). The question is, how did the appellation "algebraic" come about historically? Did it start with one or both of the meanings above? The language feature, independently of the name, seems attributed to the HOPE language[1] (see for instance A History of Haskell: Being Lazy with Class[2]). However, the paper introducing HOPE does not use the word "algebraic" anywhere. Other papers on the topic do not discuss the origins of the word. I am curious about citations regarding the history of the name "algebraic data types" itself. Regards, Li-yao [1]: http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.18.8135 [2]: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/history....

Hey Li-yao,
This sort of questions is really popular in the TYPES mailing list: you
might want to ask there, e.g. if nothing comes up here.
—
Best, Artem
On Fri, Aug 7, 2020 at 4:15 PM Li-yao Xia
Dear Café,
What makes "algebraic data types" algebraic? There are at least two common explanations in use:
1. Algebraic data types are defined using sums and products of types, by analogy with, well, concepts from algebra.
2. Algebraic data types are initial algebras.
There are numerous blogs online explaining "algebraic data types" that way, with a large majority adopting the more approachable explanation (1).
The question is, how did the appellation "algebraic" come about historically? Did it start with one or both of the meanings above?
The language feature, independently of the name, seems attributed to the HOPE language[1] (see for instance A History of Haskell: Being Lazy with Class[2]). However, the paper introducing HOPE does not use the word "algebraic" anywhere. Other papers on the topic do not discuss the origins of the word. I am curious about citations regarding the history of the name "algebraic data types" itself.
Regards, Li-yao
[1]: http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.18.8135 [2]:
https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/history.... _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.

Also Have a look at work on algebraic specification e.g. CLEAR, and OBJ,
CLU work by
Joseph Goguen, Rob Burstall, Jose Meseguer, Liskov and others. The former
introduced the idea of
using initial algebras. I couldn't state offhand which came first, however
there was quite a
bit of activity in the 70s that centered on using algebras and ideas from
category theory for
specification and implementation. cf the ML module system.
Apologies to anyone whose name I've omitted, its been sometime since I
walked in that space.
regards
David
On Fri, Aug 7, 2020 at 9:46 PM Artem Pelenitsyn
Hey Li-yao,
This sort of questions is really popular in the TYPES mailing list: you might want to ask there, e.g. if nothing comes up here.
— Best, Artem
On Fri, Aug 7, 2020 at 4:15 PM Li-yao Xia
wrote: Dear Café,
What makes "algebraic data types" algebraic? There are at least two common explanations in use:
1. Algebraic data types are defined using sums and products of types, by analogy with, well, concepts from algebra.
2. Algebraic data types are initial algebras.
There are numerous blogs online explaining "algebraic data types" that way, with a large majority adopting the more approachable explanation (1).
The question is, how did the appellation "algebraic" come about historically? Did it start with one or both of the meanings above?
The language feature, independently of the name, seems attributed to the HOPE language[1] (see for instance A History of Haskell: Being Lazy with Class[2]). However, the paper introducing HOPE does not use the word "algebraic" anywhere. Other papers on the topic do not discuss the origins of the word. I am curious about citations regarding the history of the name "algebraic data types" itself.
Regards, Li-yao
[1]: http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.18.8135 [2]:
https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/history.... _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
-- David Duke Emeritus Professor of Computer Science School of Computing University of Leeds UK E:duke.j.david@gmail.com W:https://engineering.leeds.ac.uk/staff/334/Professor_David_Duke
participants (3)
-
Artem Pelenitsyn
-
David Duke
-
Li-yao Xia