LISP系の他の言語と同じく、SKILL言語でも無名関数を扱うことができる。
; 《例》mapcar 関数でオブジェクトの情報をリスト化する (mapcar (lambda (o) (list o~>name o~>xy o~>orient)) (geGetSelectedSet))
; 《例》sort関数に渡す比較関数 (sort (geGetSelectedSet) (lambda (a b) (alphalessp a~>name b~>name)))
SKILL言語の変数は動的スコープであるので、SKILL言語の無名関数はクロージャー(関数閉包)ではない。変数が静的スコープ(構文スコープ)である Scheme言語 などで作られたプログラムを移植する場合には気をつけること。
(setq x "global")
(setq getX (let ((x "local")) (lambda () x) ) )
(apply getX nil) → "global" ; Scheme言語なら "local"
このコード例では、変数 getX に入っている無名関数を apply で評価した時、動的スコープ方式の SKILL 言語としては、apply が書かれた場所での変数 x の値 "global" を返す。(静的スコープ方式の Scheme 言語であれば、(lambda () x) が書かれた場所での変数 x の値 "local" を返す。)