Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
cartesianproducts [2015/04/21 17:40] wikiadmin |
cartesianproducts [2015/04/21 17:42] wikiadmin [Using sets] |
||
---|---|---|---|
Line 38: | Line 38: | ||
...would have their corresponding sets: | ...would have their corresponding sets: | ||
- | \[ ENode \subseteq Node \] | + | \begin{equation*} ENode \subseteq Node \end{equation*} |
- | \[ ELeaf \subseteq Leaf \] | + | \begin{equation*} ELeaf \subseteq Leaf \end{equation*} |
Now, a user could want to indicate that ENode not only matches Node's, but actually matches **all** of them (same for ELeaf of Leaf's). He would **need** to specify the following constraints: | Now, a user could want to indicate that ENode not only matches Node's, but actually matches **all** of them (same for ELeaf of Leaf's). He would **need** to specify the following constraints: | ||
- | \[ ENode \supseteq Node \] | + | \begin{equation*} ENode \supseteq Node \end{equation*} |
- | \[ ELeaf \supseteq Leaf \] | + | \begin{equation*} ELeaf \supseteq Leaf \end{equation*} |
(Note that we then have equality between the sets of the extractors and their corresponding types. This is the situation we have with case classes.) | (Note that we then have equality between the sets of the extractors and their corresponding types. This is the situation we have with case classes.) | ||
Line 65: | Line 65: | ||
This is readily expressible thanks to the set operators: | This is readily expressible thanks to the set operators: | ||
- | \[EvenNode \cap OddNode = \emptyset \] | + | \begin{equation*}EvenNode \cap OddNode = \emptyset \end{equation*} |
- | \[EvenNode \cup OddNode = Node \] | + | \begin{equation*}EvenNode \cup OddNode = Node \end{equation*} |
==== Analyzing patterns ==== | ==== Analyzing patterns ==== |