nptのドキュメントです。
参照元:ANSI Common Lisp npt
lisp.h
に記載されている下記の関数仕様を示します。
■オブジェクト生成int lisp_character_(addr x, unicode value);
void lisp_fixnum(addr x, fixnum value);
int lisp_float_(addr x, float value);
int lisp_double_(addr x, double value);
int lisp_long_double_(addr x, long double value);
■値取得int lisp_zero_p(addr value);
int lisp_plus_p(addr value);
int lisp_minus_p(addr value);
void lisp_get_character(addr pos, unicode *ret);
void lisp_get_fixnum(addr pos, fixnum *ret);
int lisp_get_float_(addr pos, float *ret);
int lisp_get_double_(addr pos, double *ret);
int lisp_get_long_double_(addr pos, long double *ret);
■packageint lisp_package_(addr x, addr pos);
int lisp_package8_(addr x, const void *str);
int lisp_package16_(addr x, const void *str);
int lisp_package32_(addr x, const void *str);
■internint lisp_intern_(addr x, addr package, addr name);
int lisp_intern8_(addr x, const void *package, const void *name);
int lisp_intern16_(addr x, const void *package, const void *name);
int lisp_intern32_(addr x, const void *package, const void *name);
■readerint lisp_reader_(addr x, addr str);
int lisp_reader8_(addr x, const void *str);
int lisp_reader16_(addr x, const void *str);
int lisp_reader32_(addr x, const void *str);
■pathnameint lisp_pathname_(addr x, addr name);
int lisp_pathname8_(addr x, const void *str);
int lisp_pathname16_(addr x, const void *str);
int lisp_pathname32_(addr x, const void *str);
int lisp_namestring_(addr x, addr path);
Lispオブジェクト生成の関数です。
int lisp_character_(addr x, unicode value);
void lisp_fixnum(addr x, fixnum value);
int lisp_float_(addr x, float value);
int lisp_double_(addr x, double value);
int lisp_long_double_(addr x, long double value);
lisp_character_
int lisp_character_(addr x, unicode value);
: value unicode文字
入力: x hold変数
出力: 脱出時に0以外 戻り値
value
をUnicodeとして扱い、文字型のオブジェクトを生成します。
value
がサロゲートペアで予約されているコードであるか、 あるいはUnicodeの範囲を超えている場合はエラーです。
lisp_fixnum
void lisp_fixnum(addr x, fixnum value);
: value 整数
入力: x hold変数 出力
型fixnum
で表される整数オブジェクトを生成します。
lisp_float_
int lisp_float_(addr x, float value);
: value 浮動小数
入力: x hold変数
出力: 脱出時に0以外 戻り値
single-float
型の浮動小数オブジェクトを生成します。
value
がinf
かnan
の場合はエラーです。
lisp_double_
int lisp_double_(addr x, double value);
: value 浮動小数
入力: x hold変数
出力: 脱出時に0以外 戻り値
double-float
型の浮動小数オブジェクトを生成します。
value
がinf
かnan
の場合はエラーです。
lisp_long_double_
int lisp_long_double_(addr x, long double value);
: value 浮動小数
入力: x hold変数
出力: 脱出時に0以外 戻り値
long-float
型の浮動小数オブジェクトを生成します。
value
がinf
かnan
の場合はエラーです。
オブジェクトの値を取得する関数です。
int lisp_zero_p(addr value);
int lisp_plus_p(addr value);
int lisp_minus_p(addr value);
void lisp_get_character(addr pos, unicode *ret);
void lisp_get_fixnum(addr pos, fixnum *ret);
int lisp_get_float_(addr pos, float *ret);
int lisp_get_double_(addr pos, double *ret);
int lisp_get_long_double_(addr pos, long double *ret);
lisp_zero_p
int lisp_zero_p(addr value);
: value オブジェクト
入力: bool値 戻り値
value
がhold変数の場合は、内容が評価されます。
value
が実数でありかつ0
である場合に0以外が返却されます。
lisp_plus_p
int lisp_plus_p(addr value);
: value オブジェクト
入力: bool値 戻り値
value
がhold変数の場合は、内容が評価されます。
value
が実数でありかつ0
を超えている場合に0以外が返却されます。
0
は含まれません。
lisp_minus_p
int lisp_minus_p(addr value);
: value オブジェクト
入力: bool値 戻り値
value
がhold変数の場合は、内容が評価されます。
value
が実数でありかつ0
をより小さい場合に0以外が返却されます。
0
は含まれません。
lisp_get_character
void lisp_get_character(addr pos, unicode *ret);
: pos 文字型オブジェクト
入力: ret unicode文字 出力
pos
がhold変数の場合は、内容が評価されます。
文字型のコードをret
に返却します。
lisp_get_fixnum
void lisp_get_fixnum(addr pos, fixnum *ret);
: pos fixnum型オブジェクト
入力: ret fixnum型整数 出力
pos
がhold変数の場合は、内容が評価されます。
LISPTYPE_FIXNUM
型オブジェクトから値をret
に返却します。
lisp_get_float_
int lisp_get_float_(addr pos, float *ret);
: pos 実数型オブジェクト
入力: ret 浮動小数
出力: 脱出時に0以外 戻り値
pos
がhold変数の場合は、内容が評価されます。
pos
がsingle-float
型の場合は値をret
に返却します。
それ以外の実数型の場合はsingle-float
にcastして返却します。
lisp_get_double_
int lisp_get_double_(addr pos, double *ret);
: pos 実数型オブジェクト
入力: ret 浮動小数
出力: 脱出時に0以外 戻り値
pos
がhold変数の場合は、内容が評価されます。
pos
がdouble-float
型の場合は値をret
に返却します。
それ以外の実数型の場合はdouble-float
にcastして返却します。
lisp_get_long_double_
int lisp_get_long_double_(addr pos, long double *ret);
: pos 実数型オブジェクト
入力: ret 浮動小数
出力: 脱出時に0以外 戻り値
pos
がhold変数の場合は、内容が評価されます。
pos
がlong-float
型の場合は値をret
に返却します。
それ以外の実数型の場合はlong-float
にcastして返却します。
packageの関数です。
int lisp_package_(addr x, addr pos);
int lisp_package8_(addr x, const void *str);
int lisp_package16_(addr x, const void *str);
int lisp_package32_(addr x, const void *str);
lisp_package_
int lisp_package_(addr x, addr pos);
: pos package-designator
入力: x hold変数
出力: 脱出時は0以外 戻り値
pos
が表す名前のpackageを返却します。
pos
がhold変数の場合は、内容が使用されます。
lisp_package8_
int lisp_package8_(addr x, const void *str);
int lisp_package16_(addr x, const void *str);
int lisp_package32_(addr x, const void *str);
: str Unicode文字列
入力: x hold変数
出力: 脱出時は0以外 戻り値
str
が表す名前のpackageを返却します。
Unicode文字列の詳細はlisp_string8_
関数をご確認ください。
lisp_package16_
lisp_package8_
で解説
lisp_package32_
lisp_package8_
で解説
internの関数です。
int lisp_intern_(addr x, addr package, addr name);
int lisp_intern8_(addr x, const void *package, const void *name);
int lisp_intern16_(addr x, const void *package, const void *name);
int lisp_intern32_(addr x, const void *package, const void *name);
lisp_intern_
int lisp_intern_(addr x, addr package, addr name);
: package package-designatorかnil
入力: name 文字列
入力: x hold変数
出力: 脱出時は0以外 戻り値
package
にname
で表す名前のsymbolをinternします。
package
がnil
かNULL
の場合は*package*
の値が使用されます。
package
とname
がhold変数の場合は、内容が使用されます。
lisp_intern8_
int lisp_intern8_(addr x, const void *package, const void *name);
int lisp_intern16_(addr x, const void *package, const void *name);
int lisp_intern32_(addr x, const void *package, const void *name);
: package Unicode文字列かNULL
入力: name Unicode文字列
入力: x hold変数
出力: 脱出時は0以外 戻り値
package
にname
で表す名前のsymbolをinternします。
package
がNULL
の場合は*package*
の値が使用されます。
Unicode文字列の詳細はlisp_string8_
関数をご確認ください。
lisp_intern16_
lisp_intern8_
で解説
lisp_intern32_
lisp_intern8_
で解説
readerによる読み込みの関数です。
int lisp_reader_(addr x, addr str);
int lisp_reader8_(addr x, const void *str);
int lisp_reader16_(addr x, const void *str);
int lisp_reader32_(addr x, const void *str);
lisp_reader_
int lisp_reader_(addr x, addr str);
: str 文字列
入力: x hold変数
出力: 脱出時に0以外 戻り値
文字列のstr
をreaderで読み込みます。
read-from-string
関数と同等です。
何も読み込めなかったときはNULLが返却されます。
NULLかどうかはlisp_null_p
関数で確認できます。
str
がhold変数の場合は、内容が使用されます。
lisp_reader8_
int lisp_reader8_(addr x, const void *str);
int lisp_reader16_(addr x, const void *str);
int lisp_reader32_(addr x, const void *str);
: str Unicode文字列
入力: x hold変数
出力: 脱出時は0以外 戻り値
文字列のstr
をreaderで読み込みます。
read-from-string
関数と同等です。
何も読み込めなかったときはNULLが返却されます。
NULLかどうかはlisp_null_p
関数で確認できます。
Unicode文字列の詳細はlisp_string8_
関数をご確認ください。
lisp_reader16_
lisp_reader8_
で解説
lisp_reader32_
lisp_reader8_
で解説
pathnameの関数です。
int lisp_pathname_(addr x, addr name);
int lisp_pathname8_(addr x, const void *str);
int lisp_pathname16_(addr x, const void *str);
int lisp_pathname32_(addr x, const void *str);
int lisp_namestring_(addr x, addr path);
lisp_pathname_
int lisp_pathname_(addr x, addr name);
: name pathname-designator
入力: x hold変数
出力: 脱出時は0以外 戻り値
文字列name
をpathnameに変換します。
parse-namestring
関数と同等です。
name
がhold変数の時は、内容が使用されます。
lisp_pathname8_
int lisp_pathname8_(addr x, const void *str);
int lisp_pathname16_(addr x, const void *str);
int lisp_pathname32_(addr x, const void *str);
: str Unicode文字列
入力: x hold変数
出力: 脱出時は0以外 戻り値
文字列str
をpathnameに変換します。
parse-namestring
関数と同等です。
Unicode文字列の詳細はlisp_string8_
関数をご確認ください。
lisp_pathname16_
lisp_pathname8_
で解説
lisp_pathname32_
lisp_pathname8_
で解説
lisp_namestring_
int lisp_namestring_(addr x, addr path);
: path pathname-designator
入力: x hold変数
出力: 脱出時に0以外 戻り値
pathnameオブジェクトでpath
を文字列に変換します。
namestring
関数と同等です。
path
がhold変数の時は、内容が使用されます。