REBOL 3 Docs Guide Concepts Functions Datatypes Errors
  TOC < Back Next >   Updated: 3-Aug-2010 Edit History  

REBOL 3 Functions: intersect

intersect  set1  set2  /case  /skip  size

Returns the intersection of two data sets.

Arguments:

set1 [block! string! binary! bitset! typeset!] - first set

set2 [block! string! binary! bitset! typeset!] - second set

Refinements:

/case - Uses case-sensitive comparison

/skip - Treat the series as records of fixed size

size [integer!]

See also:

difference   union   exclude   unique  

Description

Returns all elements within two blocks or series that exist in both.

lunch: [ham cheese bread carrot]
dinner: [ham salad carrot rice]
probe intersect lunch dinner
[ham carrot]
probe intersect [1 3 2 4] [3 5 4 6]
[3 4]
string1: "CBAD"    ; A B C D scrambled
string2: "EDCF"    ; C D E F scrambled
probe intersect string1 string2
"CD"
items: [1 1 2 3 2 4 5 1 2]
probe intersect items items  ; get unique set
[1 2 3 4 5]
str: "abcacbaabcca"
probe intersect str str
"abc"

To obtain a unique set (to remove duplicate values) you can use UNIQUE.

Note that performing this function over very large data sets can be CPU intensive.


  TOC < Back Next > REBOL.com - WIP Wiki Feedback Admin