REBOL3 tracker
  0.9.12 beta
Ticket #0002222 User: anonymous

Project:

Previous Next
rss
TypeWish Statussubmitted Date17-Jul-2015 15:57
Versionr3 master CategoryUnspecified Submitted byfork
PlatformAll Severityminor Prioritynormal

Summary Make EXCLUDE modify its argument, rename INTERSECT=>INTERSECTION
Description I wanted to remove some items from a set, and realized I didn't know if EXCLUDE modified its argument or not. It sounds transitive, and transitive words like that tend to modify. Consider

>> head insert [a b c] [d e f]
== [d e f a b c]

But exclude does not modify:

>> foo: [a b c d e f]
== [a b c d e f]

>> exclude foo [b e f]
== [a c d]

>> foo
== [a b c d e f]

If the word was EXCLUSION it wouldn't seem as odd. Or even more clear, EXCLUSION-OF.

INTERSECT has the same problem, and could similarly be solved with INTERSECTION or INTERSECTION-OF. Then INTERSECT could modify.

In trying to complete the set we'd wind up with:

INTERSECTION-OF, UNION-OF, EXCLUSION-OF, DIFFERENCE-OF

As parallels to their transitive forms:

INTERSECT, UNITE, EXCLUDE, DIFFERENTIATE (?)

However, differentiate sounds like Calculus, and I can't think of a better word. And really, having both sets is probably excessive.

The simplest solution would seem to be to make EXCLUDE the only verb form, and if you want a copying version make the copy yourself (as one has to do with INSERT and APPEND and other operations). Then just rename INTERSECT to INTERSECTION and call it done.
Example code

			

Assigned ton/a Fixed in- Last Update17-Jul-2015 15:57


Comments

Date User Field Action Change
17-Jul-2015 15:57 Fork Ticket Added -