# L-36 MCS 275 Mon 14 Apr 2008 : class_set.py

# Basic implementation of a class set.

class Set:
   """
   A set is a list without duplicates.
   """
   def __init__(self,*elements):
      """
      Turns a sequence of arguments in
      elements into a set.
      """
      self.s = []
      for e in elements:
         if not e in self.s:
            self.s.append(e)

   def __str__(self):
      """
      Returns a string representation 
      of a set as { elements }.
      """
      n = len(self.s)-1
      if n < 0:
         r = '{}'
      else:
         r = '{'
         for i in range(0,n):
            r = r + str(self.s[i]) + ','
         r = r + str(self.s[n]) + '}'
      return r

   def __repr__(self):
      """
      The string representation defines
      the set representation.
      """
      return str(self)
