I'm tempted to ask how to classify "Yes, sir, no, sir, 3 bags full". Does the constitute a Boolean, numeric, or set operation, or some combination thereof? :-)*

On 7/21/17, Darren Duncan <dar...@darrenduncan.net> wrote: > On 2017-07-21 1:33 PM, Elizabeth Mattijsen wrote: >>> On 21 Jul 2017, at 21:30, Darren Duncan <dar...@darrenduncan.net> wrote: >>> Firstly, I believe ∆ (U+2206) is the standard symbol for symmetric >>> difference, and not circled minus as the above url currently gives. >> >> https://en.wikipedia.org/wiki/Symmetric_difference seems to agree, showing >> it as the first choice. However, ⊖ appears to be the second choice. >> FWIW, I think ∆ better matches the Texas variant (^) . > > The circled plus is also overloaded for XOR (which itself has at least 2 > more-preferred alternatives) and other things, while ∆ (U+2206) isn't AFAIK > > overloaded for anything and in any event ∆ (U+2206) is much more consistent > with > all the other standard set/bag operators in format and it is what the > literature > prefers to use. > > What you say about (^) Texas version isn't a similarity I thought about, but > > then that gives my proposal extra support if anything. > > The circled plus should be dropped from use for this meaning. > >>> Secondly, I see there's an operator for multiplying 2 bags (which I >>> hadn't heard of before, but okay), but there should also be an operator >>> for multiplying 1 bag by a natural number, that is a scalar multiply of a >>> bag. Unless it is assumed the standard hyper-operator syntax is best for >>> this. >> >> If I get this right, you’d want: >> >> <a b b>.Bag * 3 give (:3a,:6b).Bag ? >> >> I guess that with * being commutative, 3 * <a b b>.Bag would be the same >> result. > > You are correct in all points above. > >> But then, what would <a b b>.Bag * <a a b>.Bag be? > > I would suggest that this option is either undefined or it has the same > meaning > as the bag multiplication operator, eg, (:2a,:2b).Bag. > > Another way of looking at this is, say if we're starting with the existing > bag > circled-times bag operator, replacing one bag operand with a number N is > like > replacing it with what is conceptually an infinite-cardinality bag having > :Ne > for "e" in turn being every possible value in the type system; the infinite > bag > reduces to one having only matching unique members and replicates those > matches > by a cardinality of N. > > -- Darren Duncan >