Anonymous user
Power set: Difference between revisions
→{{header|Go}}
Line 810:
import (
"bytes"
"fmt"
"strconv"
Line 818 ⟶ 819:
// element is an interface, allowing different kinds of elements to be
// implemented and stored in sets.
type
// an element must be distinguishable from other elements to satisfy
// the mathematical definition of a set. a.eq(b) must give the same
// result as b.eq(a).
// String result is used only for printable output. Given a, b where
// a.eq(b), it is not required that a.String() == b.String().
}
// integer type satisfying element interface
type
func (i
return ok
return false▼
}
func (i
return strconv.Itoa(int(i))
}
// a set
//
type set []
// uniqueness of elements can be ensured by using add method
func (s *set)
if !s.
*s = append(*s, e)
}
}
func (s *set)
for _, ex := range *s {
if e.
return true
}
Line 862 ⟶ 861:
}
// elem.Eq
func (s set)
t, ok := e.(set)
if !ok {
Line 872 ⟶ 871:
}
for _, se := range s {
if !t.
return false
}
Line 879 ⟶ 878:
}
// elem.String
func (s set) String() string {
buf.WriteRune('{')
for _, e := range s {
if len(r) > 1 {
}
}
}
Line 906 ⟶ 907:
func main() {
var s set
for _, i := range []
s.
}
fmt.Println(s)
|