Changeset 4339


Ignore:
Timestamp:
10/13/03 11:35:15 (19 years ago)
Author:
piso
Message:

FUNCTIONP: recognize generic functions.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/lisp/Primitives.java

    r4333 r4339  
    33 *
    44 * Copyright (C) 2002-2003 Peter Graves
    5  * $Id: Primitives.java,v 1.470 2003-10-12 18:23:03 piso Exp $
     5 * $Id: Primitives.java,v 1.471 2003-10-13 11:35:15 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    5454    private static final int EVENP                      = 20;
    5555    private static final int FOURTH                     = 21;
    56     private static final int FUNCTIONP                  = 22;
    57     private static final int IDENTITY                   = 23;
    58     private static final int KEYWORDP                   = 24;
    59     private static final int LENGTH                     = 25;
    60     private static final int LISTP                      = 26;
    61     private static final int LOWER_CASE_P               = 27;
    62     private static final int MAKE_SYMBOL                = 28;
    63     private static final int MAKUNBOUND                 = 29;
    64     private static final int NUMBERP                    = 30;
    65     private static final int ODDP                       = 31;
    66     private static final int PREDECESSOR                = 32;
    67     private static final int SECOND                     = 33;
    68     private static final int SIMPLE_BIT_VECTOR_P        = 34;
    69     private static final int SIMPLE_STRING_P            = 35;
    70     private static final int SIMPLE_VECTOR_P            = 36;
    71     private static final int SPECIAL_OPERATOR_P         = 37;
    72     private static final int STRINGP                    = 38;
    73     private static final int SUCCESSOR                  = 39;
    74     private static final int SYMBOL_FUNCTION            = 40;
    75     private static final int SYMBOL_NAME                = 41;
    76     private static final int SYMBOL_PACKAGE             = 42;
    77     private static final int SYMBOL_PLIST               = 43;
    78     private static final int SYMBOL_VALUE               = 44;
    79     private static final int THIRD                      = 45;
    80     private static final int UPPER_CASE_P               = 46;
    81     private static final int VALUES_LIST                = 47;
    82     private static final int VECTORP                    = 48;
     56    private static final int IDENTITY                   = 22;
     57    private static final int KEYWORDP                   = 23;
     58    private static final int LENGTH                     = 24;
     59    private static final int LISTP                      = 25;
     60    private static final int LOWER_CASE_P               = 26;
     61    private static final int MAKE_SYMBOL                = 27;
     62    private static final int MAKUNBOUND                 = 28;
     63    private static final int NUMBERP                    = 29;
     64    private static final int ODDP                       = 30;
     65    private static final int PREDECESSOR                = 31;
     66    private static final int SECOND                     = 32;
     67    private static final int SIMPLE_BIT_VECTOR_P        = 33;
     68    private static final int SIMPLE_STRING_P            = 34;
     69    private static final int SIMPLE_VECTOR_P            = 35;
     70    private static final int SPECIAL_OPERATOR_P         = 36;
     71    private static final int STRINGP                    = 37;
     72    private static final int SUCCESSOR                  = 38;
     73    private static final int SYMBOL_FUNCTION            = 39;
     74    private static final int SYMBOL_NAME                = 40;
     75    private static final int SYMBOL_PACKAGE             = 41;
     76    private static final int SYMBOL_PLIST               = 42;
     77    private static final int SYMBOL_VALUE               = 43;
     78    private static final int THIRD                      = 44;
     79    private static final int UPPER_CASE_P               = 45;
     80    private static final int VALUES_LIST                = 46;
     81    private static final int VECTORP                    = 47;
    8382
    8483    // Primitive2
    85     private static final int MEMBER                     = 49;
    86     private static final int RPLACA                     = 50;
    87     private static final int RPLACD                     = 51;
    88     private static final int SET                        = 52;
     84    private static final int MEMBER                     = 48;
     85    private static final int RPLACA                     = 49;
     86    private static final int RPLACD                     = 50;
     87    private static final int SET                        = 51;
    8988
    9089    private Primitives()
     
    114113        definePrimitive1("evenp", EVENP);
    115114        definePrimitive1("fourth", FOURTH);
    116         definePrimitive1("functionp", FUNCTIONP);
    117115        definePrimitive1("identity", IDENTITY);
    118116        definePrimitive1("keywordp", KEYWORDP);
     
    212210            case FOURTH:                        // ### fourth
    213211                return arg.cdr().cdr().cdr().car();
    214             case FUNCTIONP:                     // ### functionp
    215                 return arg instanceof Function ? T : NIL;
    216212            case COMPILED_FUNCTION_P:           // ### compiled-function-p
    217213                return arg.typep(Symbol.COMPILED_FUNCTION);
     
    430426        {
    431427            return first.CONSTANTP();
     428        }
     429    };
     430
     431    // ### functionp
     432    private static final Primitive1 FUNCTIONP = new Primitive1("functionp")
     433    {
     434        public LispObject execute(LispObject arg) throws ConditionThrowable
     435        {
     436            return (arg instanceof Function || arg instanceof GenericFunction) ? T : NIL;
    432437        }
    433438    };
Note: See TracChangeset for help on using the changeset viewer.