Sync
This commit is contained in:
parent
6f050a029e
commit
776bba907c
3887 changed files with 59894 additions and 7280 deletions
|
|
@ -14,3 +14,5 @@ Show each of these set operations:
|
|||
As an option, show some other set operations. (If A ⊆ B, but A ≠ B, then A is called a true or proper subset of B, written A ⊂ B or A ⊊ B.) As another option, show how to modify a mutable set.
|
||||
|
||||
One might implement a set using an [[associative array]] (with set elements as array keys and some dummy value as the values). One might also implement a set with a binary search tree, or with a hash table, or with an ordered array of binary bits (operated on with bitwise binary operators). The basic test, m ∈ S, is [[O]](n) with a sequential list of elements, O(''log'' n) with a balanced binary search tree, or (O(1) average-case, O(n) worst case) with a hash table.
|
||||
|
||||
{{Template:See also lists}}
|
||||
|
|
|
|||
27
Task/Set/Nemerle/set.nemerle
Normal file
27
Task/Set/Nemerle/set.nemerle
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
using System.Console;
|
||||
using Nemerle.Collections;
|
||||
|
||||
module RCSet
|
||||
{
|
||||
HasSubset[T](this super : Set[T], sub : Set[T]) : bool
|
||||
{
|
||||
super.ForAll(x => sub.Contains(x))
|
||||
}
|
||||
|
||||
Main() : void
|
||||
{
|
||||
def names1 = Set(["Bob", "Billy", "Tom", "Dick", "Harry"]);
|
||||
def names2 = Set(["Bob", "Mary", "Alice", "Louisa"]);
|
||||
//def names3 = Set(["Bob", "Bob"]); // unfortunately, duplicated elements are not well handled by the stock
|
||||
// implementation, this statement would throw an ArgumentException
|
||||
def elem = names1.Contains("Bob"); // element test
|
||||
def names1u2 = names1.Sum(names2); // union
|
||||
def names1d2 = names1.Subtract(names2); // difference
|
||||
def names1i2 = names1.Intersect(names2); // intersection
|
||||
def same = names1.Equals(names2); // equality
|
||||
def sub12 = names1.HasSubset(names2); // subset
|
||||
|
||||
WriteLine($"$names1u2\n$names1d2\n$names1i2");
|
||||
WriteLine($"$same\t$sub12");
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue