Purpose: Definition and discussion of set functionality, especially the function to check for membership of elements.
Back to the Chart of proposed set functionality.
- ::setops::contains set element
2 Arguments:
- The set to check, as a tcl-list, by value.
- The text of the element to check for membership in the set.
Return value:
- A number, in the set {0, 1}. 0 = element is no member of the set. 1 = element is a member of the set.
Implementation:
proc ::setops::contains {set element} {
expr {[lsearch -exact $set $element] >= 0}
#expr {[lsearch -exact $set $element] < 0 ? 0 : 1}
}
- Speed
- O(n). n = Length of the list representing the set.
C implementation using a hash table:
- Speed
- Basically O(1), O(n) in worst-case = transformation of a string or list into the hash-table representation.
-- AK