Set: Difference between revisions

639 bytes added ,  5 years ago
added Ol
m (→‎{{header|Ring}}: Remove vanity tags)
(added Ol)
Line 3,231:
 
In addition, you can use imperative hash tables from the <code>Hashtbl</code> module as a hash table-based set, using the unit type as the "value" for each key.
 
=={{header|Ol}}==
<lang scheme>
; test set
(define set1 '(1 2 3 4 5 6 7 8 9))
(define set2 '(3 4 5 11 12 13 14))
(define set3 '(4 5 6 7))
(define set4 '(1 2 3 4 5 6 7 8 9))
 
; union
(print (union set1 set2))
; ==> (1 2 6 7 8 9 3 4 5 11 12 13 14)
 
; intersection
(print (intersect set1 set2))
; ==> (3 4 5)
 
; difference
(print (diff set1 set2))
; ==> (1 2 6 7 8 9)
 
; subset (no predefined function)
(define (subset? a b)
(all (lambda (i) (has? b i)) a))
(print (subset? set3 set1))
; ==> #true
(print (subset? set3 set2))
; ==> #false
 
; equality
(print (equal? set1 set2))
; ==> #false
(print (equal? set1 set4))
; ==> #true
</lang>
 
=={{header|ooRexx}}==