nptのドキュメントです。
参照元:ANSI Common Lisp npt
lisp.h
に記載されている下記の関数仕様を示します。
■hold関数int lisp_hold_p(addr x);
void lisp_hold_value(addr x, addr *ret);
void lisp_hold_set(addr x, addr value);
(addr x);
addr Lisp_holdvvoid lisp_hold(addr *ret, addr value);
(void);
addr Lisp_hold
, t
■nilvoid lisp_nil(addr x);
void lisp_t(addr x);
(void);
addr Lisp_nil(void);
addr Lisp_t
■typeint lisp_nil_p(addr x);
int lisp_t_p(addr x);
int lisp_null_p(addr x);
int lisp_character_p(addr x);
int lisp_cons_p(addr x);
int lisp_list_p(addr x);
int lisp_string_p(addr x);
int lisp_symbol_p(addr x);
int lisp_strvect_p(addr x);
int lisp_array_p(addr x);
int lisp_vector_p(addr x);
■数値型int lisp_fixnum_p(addr x);
int lisp_bignum_p(addr x);
int lisp_integer_p(addr x);
int lisp_ratio_p(addr x);
int lisp_rational_p(addr x);
int lisp_single_float_p(addr x);
int lisp_double_float_p(addr x);
int lisp_long_float_p(addr x);
int lisp_float_p(addr x);
int lisp_real_p(addr x);
int lisp_complex_p(addr x);
int lisp_number_p(addr x);
■オブジェクトint lisp_clos_p(addr x);
int lisp_hashtable_p(addr x);
int lisp_readtable_p(addr x);
int lisp_control_p(addr x);
int lisp_callname_p(addr x);
int lisp_function_p(addr x);
int lisp_package_p(addr x);
int lisp_random_state_p(addr x);
int lisp_pathname_p(addr x);
int lisp_stream_p(addr x);
int lisp_restart_p(addr x);
int lisp_environment_p(addr x);
int lisp_bitvector_p(addr x);
int lisp_print_dispatch_p(addr x);
hold変数の操作関数です。
int lisp_hold_p(addr x);
void lisp_hold_value(addr x, addr *ret);
void lisp_hold_set(addr x, addr value);
(addr x);
addr Lisp_holdvvoid lisp_hold(addr *ret, addr value);
(void); addr Lisp_hold
lisp_hold_p
int lisp_hold_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は0以外を返却します。
lisp_hold_value
void lisp_hold_value(addr x, addr *ret);
: x オブジェクト
入力: ret オブジェクトの返却 出力
もしx
がhold変数の場合は、値を取り出しret
に返却します。
もしx
がhold変数ではない場合は、x
をそのままret
に返却します。
lisp_hold_set
void lisp_hold_set(addr x, addr value);
: x hold変数
入力: value オブジェクト 入力
hold変数x
にオブジェクトを格納します。
もしvalue
がhold変数の場合は、 value
が保有しているオブジェクトをx
に格納します。
Lisp_holdv
(addr x);
addr Lisp_holdv
: x オブジェクト
入力: オブジェクト 戻り値
関数lisp_hold_value
のinplace版です。
x
がhold変数の場合は、格納されているオブジェクトを返却します。
x
がhold変数ではない場合は、入力をそのまま返却します。
lisp_hold
void lisp_hold(addr *ret, addr value);
: value オブジェクト
入力: ret hold変数 出力
hold変数を作成し、value
を格納してからret
に返却します。
もしvalue
がhold変数の場合は、値を取り出してから格納します。
Lisp_hold
(void);
addr Lisp_hold
: hold変数 戻り値
hold変数を作成し返却します。
hold変数が保有する値はNIL
です。
nil
とt
オブジェクトの格納関数です。
void lisp_nil(addr x);
void lisp_t(addr x);
(void);
addr Lisp_nil(void); addr Lisp_t
lisp_nil
void lisp_nil(addr x);
: x hold変数 出力
hold変素x
にnil
オブジェクトを格納します。
lisp_t
void lisp_t(addr x);
: x hold変数 出力
hold変素x
にt
オブジェクトを格納します。
Lisp_nil
(void);
addr Lisp_nil
: nil 戻り値
nil
オブジェクトを返却します。
Lisp_t
(void);
addr Lisp_t
: t 戻り値
t
オブジェクトを返却します。
型チェックの関数です。
■typeint lisp_nil_p(addr x);
int lisp_t_p(addr x);
int lisp_null_p(addr x);
int lisp_character_p(addr x);
int lisp_cons_p(addr x);
int lisp_list_p(addr x);
int lisp_string_p(addr x);
int lisp_symbol_p(addr x);
int lisp_strvect_p(addr x);
int lisp_array_p(addr x);
int lisp_vector_p(addr x);
lisp_nil_p
int lisp_nil_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がnil
であれば0以外を返却します。
lisp_t_p
int lisp_t_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がt
であれば0以外を返却します。
lisp_null_p
int lisp_null_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がNULLポインターであれば0以外を返却します。
NULLポインターはC言語の(void *)0
のことであり、 Common LispのNIL
とは違います。
lisp_character_p
int lisp_character_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
が文字型であれば0以外を返却します。
lisp_cons_p
int lisp_cons_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がconsであれば0以外を返却します。
lisp_list_p
int lisp_list_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がlistであれば0以外を返却します。
listとは、NIL
かconsのことです。
lisp_string_p
int lisp_string_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がstringであれば0以外を返却します。
stringとは、LISPTYPE_STRING
型のオブジェクトか、 あるいはLISPTYPE_ARRAY
型でかつ 1次元のcharacter型specialized arrayのことです。
lisp_strvect_p
int lisp_strvect_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がLISPTYPE_STRING
型であれば0以外を返却します。
Common Lispのstringp
とは違います。
lisp_symbol_p
int lisp_symbol_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がsymbolであれば0以外を返却します。
lisp_array_p
int lisp_array_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がLISPTYPE_ARRAY
型であれば0以外を返却します。
Common Lispのarrayp
とは違います。
int lisp_vector_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がLISPTYPE_VECTOR
型であれば0以外を返却します。
Common Lispのvectorp
とは違います。
数値型の型関数です。
int lisp_fixnum_p(addr x);
int lisp_bignum_p(addr x);
int lisp_integer_p(addr x);
int lisp_ratio_p(addr x);
int lisp_rational_p(addr x);
int lisp_single_float_p(addr x);
int lisp_double_float_p(addr x);
int lisp_long_float_p(addr x);
int lisp_float_p(addr x);
int lisp_real_p(addr x);
int lisp_complex_p(addr x);
int lisp_number_p(addr x);
lisp_fixnum_p
int lisp_fixnum_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がLISPTYPE_FIXNUM
型であれば0以外を返却します。
Common Lispの(typep x 'fixnum)
とは厳密には違いますが、 通常の使用で差異が生じることはありません。
lisp_bignum_p
int lisp_bignum_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がLISPTYPE_BIGNUM
型であれば0以外を返却します。
lisp_integer_p
int lisp_integer_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がinteger
型であれば0以外を返却します。
lisp_ratio_p
int lisp_ratio_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がratio
型であれば0以外を返却します。
lisp_rational_p
int lisp_rational_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がrational
型であれば0以外を返却します。
lisp_single_float_p
int lisp_single_float_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がsingle-float
型であれば0以外を返却します。
lisp_double_float_p
int lisp_double_float_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がdouble-float
型であれば0以外を返却します。
lisp_long_float_p
int lisp_long_float_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がlong-float
型であれば0以外を返却します。
lisp_float_p
int lisp_float_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がfloat
型であれば0以外を返却します。
lisp_real_p
int lisp_real_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がreal
型であれば0以外を返却します。
lisp_complex_p
int lisp_complex_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がcomplex
型であれば0以外を返却します。
lisp_number_p
int lisp_number_p(addr x);
: x オブジェクト
入力: bool値 戻り値
x
がhold変数の場合は、内容が評価されます。
x
がnumber
型であれば0以外を返却します。