Memoize

BasicWerk   EC Support   Technique   Facebook  

20140924213550_SBCL_command_option_eval

SBCL_command_option_eval

 

 

hello.lisp
 
(format T "hello~%")
 

 

 

Shell(zsh)

 
# --eval で S 式を評価できる。あ、で、最後に (quit) を評価しないと REPL が立ち上がってしまう
% =sbcl --noinform --eval '(compile-file "hello.lisp")' --eval '(quit)'
; compiling file "/Users/me/path/to/lisp/hello.lisp" (written 24 SEP 2014 09:01:22 PM):
; compiling (FORMAT T ...)
 
; /Users/me/path/to/lisp/hello.fasl written
; compilation finished in 0:00:00.205
 
# load しただけで全てが完結してる lisp ファイルは --load + --quit で OK 
% =sbcl --noinform --load hello.fasl --quit
hello
 

 

 

引数を受け取る lisp ファイルの場合

 

 

hello_who.lisp
 
(let ((who (second sb-ext:*posix-argv*)))
 (format T "hello ~A~%" who))
 

 

 

Shell(zsh)

 
# 引数付きで --load して --quit するようなコマンドラインだと REPL が立ち上がってしまう
% =sbcl --noinform --load hello_who.lisp Obuchi --quit
hello Obuchi
* (quit)
 
# lisp ファイルが引数を受け取る場合は --script を使う
# --script は自動的に (quit) してくれる
% =sbcl --noinform --script hello_who.lisp Obuchi 
hello Obuchi
 

 

http://stackoverflow.com/questions/9055589/how-can-i-run-sbcl-code-under-a-unix-like-operating-system-in-a-convenient-way

 


© Shin Nakamura/BasicWerk 2014