Archive for 2016年9月|Monthly archive page
command-event で load を楽に
以前、newLISP 組込関数の構文オンライン表示で使った command-event。
今回は、これを使って、ファイル名だけで lsp ファイルをロードします。
(command-event (fn (s)
(let (x (read-expr s))
(let (f (string x))
(when (and (starts-with f "'") (ends-with f ".lsp"))
(print "load ")
(if (file? (1 f)) (load (1 f)) (println (1 f) "\nERR: no file")))))))
末尾が “.lsp” の時、その lsp ファイルをロードします。
ただし、ファイル名の先頭には、クォート(’)をつけます。
使い方は、
C:\Language\newlisp>newlisp -n newLISP v.10.7.0 32-bit on Windows IPv4/6 UTF-8 libffi, options: newlisp -h > (command-event (fn (s) (let (x (read-expr s)) (let (f (string x)) (when (and (starts-with f "'") (ends-with f ".lsp")) (print "load ") (if (file? (1 f)) (load (1 f)) (println (1 f) "\nERR: no file"))))))) $command-event > $command-event (lambda (s) (let (x (read-expr s)) (let (f (string x)) (when (and (starts-with f "'") (ends-with f ".lsp")) (print "load ") (if (file? (1 f)) (load (1 f)) (println (1 f) "\nERR: no file")))))) > jdate nil > jdate.lsp nil > jdate nil > 'jdate.lsp load jdate.lsp > jdate jdate > (jdate) "2016/9/28 20:59:45 水" >
こんな感じ。もちろん、フルパスも使えます。
jdate については、こちらでどうぞ。
以上、如何でしょうか?