(unless (member :child-sbcl *features*) (quit :recklessly-p t :unix-status (process-exit-code (run-program *runtime-pathname* `("--control-stack-size" "256MB" "--noinform" "--disable-ldb" "--lose-on-corruption" "--end-runtime-options" "--eval" "(push :child-sbcl *features*)" "--script" ,(namestring *load-pathname*)) :output t :error t :input t)))) (defun fact (n) (if (= n 0) 1 (mod (* n (fact (- n 1))) 1000000007))) (defun main () (let ((n (read))) (format t "~d~%" (fact n)))) (main)