NScLisper機能一覧
Mark Sweep GCが実装されています。
また、シンボル(の含む文字列)は Copying GCで回収します。
末尾再帰/呼び出しの最適化が中途半端にされています。
末尾呼出を続けていればメモリを使い切ることはありませんが、
新しくセルを消費するので、GCを引き起こす要因となります。
フリーモード以外で、一回の入力に対し、GCが5回起こるごとに、終了するかどうか尋ねます。
フリーモードでは、無限ループに陥ったときはプロセスを強制終了させてください。
データ型
スペシャルフォーム
- define (関数定義のsyntax sugarあり)
- cond
- if
- quote (引用符'のsyntax sugarあり)
- let (名前付きletなし)
- begin
- lambda
- and
- or
- set!
関数
- car
- cdr
- cons
- eq? (数値比較も行うのでeqvを兼ねる)
- atom?
- +
- - (2引数のみ)
- *
- / (2引数のみ)
- mod
- >
- >=
- <
- <=
- set-car!
- set-cdr!
- boolean?
- pair?
- number?
- symbol?
- procedure?
- null?
- caar
- cadr
- cdar
- addr
- list
- length
- list-ref
- list-tail
- append
- list?
- assq
- assoc
- map
- memq
- member
- not
- equal?