The data set (set as in a collection of values, not as in set-word) native functions are:
difference
exclude
intersect
union
unique
These functions have been entirely rewritten due to Unicode and due to the removal of the HASH! datatype, by which they were optimized. They now use the MAP! datatype hashing method.
Each of these functions will operate on three argument types:
block!
string! (includes Unicode)
bitset! (includes Unicode)
Currently, this is the case:
>> union [a b] ['a 'b]
== [a b]
>> union ['a 'b] [a b]
== ['a 'b]
However, does that make sense?
I think we should probably differentiate on word datatypes. The above example would become: