Changeset 12589


Ignore:
Timestamp:
04/10/10 17:52:44 (11 years ago)
Author:
vvoutilainen
Message:

Make cadr/cddr/caddr final.

Location:
trunk/abcl/src/org/armedbear/lisp
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/src/org/armedbear/lisp/Cons.java

    r12516 r12589  
    132132    cdr = obj;
    133133    return this;
    134   }
    135 
    136   @Override
    137   public final LispObject cadr()
    138   {
    139     return cdr.car();
    140   }
    141 
    142   @Override
    143   public final LispObject cddr()
    144   {
    145     return cdr.cdr();
    146   }
    147 
    148   @Override
    149   public final LispObject caddr()
    150   {
    151     return cdr.cadr();
    152134  }
    153135
  • trunk/abcl/src/org/armedbear/lisp/LispObject.java

    r12588 r12589  
    196196  }
    197197
    198   public LispObject cadr()
    199   {
    200     return type_error(this, Symbol.LIST);
    201   }
    202 
    203   public LispObject cddr()
    204   {
    205     return type_error(this, Symbol.LIST);
    206   }
    207 
    208   public LispObject caddr()
    209   {
    210     return type_error(this, Symbol.LIST);
     198  public final LispObject cadr()
     199  {
     200    LispObject tail = cdr();
     201    if (!(tail instanceof Nil)) {
     202        return tail.car();
     203    } else
     204        return NIL;
     205  }
     206
     207  public final LispObject cddr()
     208  {
     209    LispObject tail = cdr();
     210    if (!(tail instanceof Nil)) {
     211        return tail.cdr();
     212    } else
     213        return NIL;
     214  }
     215
     216  public final LispObject caddr()
     217  {
     218    LispObject tail = cddr();
     219    if (!(tail instanceof Nil)) {
     220        return tail.car();
     221    } else
     222        return NIL;
    211223  }
    212224
  • trunk/abcl/src/org/armedbear/lisp/Nil.java

    r12400 r12589  
    108108
    109109    @Override
    110     public final LispObject cadr()
    111     {
    112         return this;
    113     }
    114 
    115     @Override
    116     public final LispObject cddr()
    117     {
    118         return this;
    119     }
    120 
    121     @Override
    122     public final LispObject caddr()
    123     {
    124         return this;
    125     }
    126 
    127     @Override
    128110    public LispObject nthcdr(int n)
    129111    {
Note: See TracChangeset for help on using the changeset viewer.