fork download
  1. (defpackage commands)
  2.  
  3. (defun commands::test ()
  4. (print 'test))
  5.  
  6. (defun commands::lalka ()
  7. (princ "lalka"))
  8.  
  9. (defun main (&optional (package 'commands))
  10. (loop :with package := (find-package package)
  11. :for cmd := (read-line *standard-input* nil) :while cmd
  12. :do (handler-case (funcall (intern (string-upcase cmd) package))
  13. (undefined-function ()
  14. (format t "~&Command `~a' doesn't exists~%" cmd)))))
  15.  
  16. (main)
Success #stdin #stdout 0s 10520KB
stdin
test
sasai
lalka
stdout
TEST 
Command `sasai' doesn't exists
lalka