/** * Copyright (c): Uwe Schmidt, FH Wedel * * You may study, modify and distribute this source code * FOR NON-COMMERCIAL PURPOSES ONLY. * This copyright message has to remain unchanged. * * Note that this document is provided 'as is', * WITHOUT WARRANTY of any kind either expressed or implied. */ /** * eine Klasse fuer Zahlen als Atome * * dies ist eine sehr einfache Implementierung * von Zahlen, hier gehoeren natuerlich * noch alle moeglichen arithmetischen Operationen dazu * ausserdem werden nur ganze Zahlen realisiert * * in einer vollstaendigen Implementierung wuerde man * Number zu einer abstrakten Klasse machen und verschiedene * Implementierungen fuer ganze Zahlen, reele Zahlen und vielleicht * BigNums als Subklassen zur Verfuegung stellen * */ //-------------------- class Number extends Atom { //-------------------- protected final long value; //-------------------- public Number(long value) { this.value = value; } //-------------------- public SExpr isEqual(SExpr e2) { if ( this == e2 ) return t; if ( ! ( e2 instanceof Number ) ) return nil; if ( value == ((Number)e2).value ) return t; return nil; } //-------------------- public String toString() { return Long.toString(value); } }