homeduke Prof. Dr. Uwe Schmidt FH Wedel

Die Datei: Pair.java


weiter
   1/**
   2 * eine Klasse fuer Paare
   3 * 
   4 * hier sind nur die absolut notwendigen
   5 * Basisoperationen realisiert
   6 *
   7 * Listen werden mit Hilfe von Paaren realisiert
   8 */
   9
  10//--------------------
  11
  12class Pair extends SExpr {
  13
  14  protected final
  15  SExpr left,right;
  16
  17  //--------------------
  18
  19  public
  20  Pair(SExpr left) {
  21    this.left  = left;
  22    this.right = nil;
  23  }
  24
  25  public
  26  Pair(SExpr leftSExpr right) {
  27    this.left  = left;
  28    this.right = right;
  29  }
  30
  31  //--------------------
  32
  33  public
  34  SExpr car() {
  35    return
  36      left;
  37  }
  38
  39  public
  40  SExpr cdr() {
  41    return
  42      right;
  43  }
  44
  45  //--------------------
  46
  47  public
  48  SExpr isPair() {
  49    return
  50      t;
  51  }
  52
  53  // nil ist eine Liste
  54  // Paare mit nil als
  55  // rechtestem Knoten sind Listen
  56  public
  57  SExpr isList() {
  58    return
  59      right.isList();
  60  }
  61
  62  //--------------------
  63
  64  public
  65  SExpr isEqual(SExpr e2) {
  66    if ( this == e2 )
  67      return
  68        t;
  69
  70    if ( ! ( e2 instanceof Pair ) )
  71      return
  72        nil;
  73
  74    {
  75      Pair l2 = (Pair)e2;
  76
  77      if ( left.isEqual(l2.left) == t
  78           &&
  79           right.isEqual(l2.right) == t )
  80        return
  81          t;
  82    }
  83    
  84    return
  85      nil;
  86  }
  87
  88  //--------------------
  89
  90  // eine sehr einfache Ausgabe
  91  // in dotted pair Format: ( a . b )
  92
  93  public
  94  String toString() {
  95    return
  96      "( " + left.toString() + " . " + right.toString() + " )";
  97  }
  98}
  99

Die Quelle: Pair.java


Letzte Änderung: 06.12.2016
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel