Code:
(handler-case (start-the-core-app) (error (c) (format t "An unexpected error happened: ~a" c)))
Statistics: Posted by vindarel — Wed Jul 01, 2020 3:43 pm
(https://stackoverflow.com/a/53950180/1506338).I wrote an ELisp compatibility layer which allowed me to run Emacs Calendar from CLISP (also a Common Lisp implementation). It should allow you to load Emacs Calculator in SBCL and run its code.
Statistics: Posted by vindarel — Tue Sep 24, 2019 8:15 am
Statistics: Posted by jessymilare — Sat Jun 22, 2019 10:46 pm
Statistics: Posted by pjstirling — Sat Jun 15, 2019 4:46 pm
Statistics: Posted by julienvincenot — Wed Jun 12, 2019 12:28 pm
Code:
(defun elementp(e l) "Check if an element e is in the given set l." (if (null l) nil (if (equal e (car l)) t (elementp e (cdr l)) ) ))(defun simplify(expr) "Simplify the given expression expr by one step." (cond ((atom expr) expr) ((and (elementp (car expr) '(+ - * /)) (numberp (cadr expr)) (numberp (caddr expr))) (eval expr)) ((and (listp (caddr expr)) (elementp (car (caddr expr)) '(+ - * /))) (list (car expr) (simplify (cadr expr)) (simplify (caddr expr))) ) ;;;(+ 0 x) ((and (equal (car expr) '+)) (equal (cadr expr) '0) (caddr expr)) ;;;(+ x 0) ((and (equal (car expr) '+) (equal (cadr expr) '0)) (caddr expr)) ;;;(- x 0) ((and (equal (car expr) '-) (equal (caddr expr) '0)) (caddr expr)) ;;;(- 0 x) ((and (equal (car expr) '-) (equal (cadr expr) '0)) (list '- (caddr expr))) ;;;(* 0 x) or (* x 0) ((and (equal (car expr) '*) (or (equal (cadr expr) '0) (equal (caddr expr) '0))) '0) ;;;(exp(t) x 0) or (^ x 0) ((and (or (equal (car expr) 'exp) (equal (car expr) 'expt) (equal (car expr) '^)) (equal (caddr expr) '0)) '1) ;;;(exp(t) x 1) or (^ x 1) ((and (or (equal (car expr) 'exp) (equal (car expr) 'expt) (equal (car expr) '^)) (equal (caddr expr) '1)) (caddr expr)) ;;;(/ 0 x) ((and (equal (car expr) '/) (equal (cadr expr) '0)) '0) ;;;(* 1 x) ((and (equal (car expr) '*) (equal (cadr expr) '1)) (caddr expr)) ;;;(* x 1) or (/ x 1) ((and (or (equal (car expr) '*) (equal (car expr) '/)) (equal (caddr expr) '1)) (cadr expr)) ;;;(- x x) ((and (equal (car expr) '-) (equal (cadr expr) (caddr expr))) '0) ;;;(/ x x) ((and (equal (car expr) '/) (equal (cadr expr) (caddr expr))) '1) ;;;(sin 0) ((and (equal (car expr) 'sin) (equal (cadr expr) '0)) '0) ;;;(-sin 0) ((and (equal (car expr) '-) (equal (car (cadr expr)) 'sin) (equal (car (cdr (cadr expr))) '0)) '0) ;;;(cos 0) ((and (equal (car expr) 'cos) (equal (cadr expr) '0)) '1) ;;;(-cos 0) ((and (equal (car expr) '-) (equal (car (cadr expr)) 'cos) (equal (car (cdr (cadr expr))) '0)) '-1) ;;;(tan 0) ((and (equal (car expr) 'tan) (equal (cadr expr) '0)) '0) ;;;(exp 0) ((and (or (equal (car expr) '^) (equal (car expr) 'exp) (equal (car expr) 'expt)) (equal (cadr expr) '0)) '1) ;;;(log 1) ((and (equal (car expr) 'log) (equal (cadr expr) '1)) '0) ;;;Expression could not be simplified. (t expr) ))(format t "~%Simplify Tests")(print (simplify '(+ 3 (+ (+ 2 2) 2))))(print (simplify (simplify '(+ 3 (+ 2 (+ 2 2))))))(print (simplify '(+ 3 (+ 2 (+ 2 2)))))(print (simplify (simplify (simplify '(+ 3 (+ 2 (+ 2 2)))))))(print (simplify 'x))(print (simplify '(- x 0)))(print (simplify '(+ 3 (+ 2 2))))(print (simplify '(* 3 (+ 2 3))))(print (simplify '(2 * 3)))(format t "~%Basic Tests")(print (simplify '(+ 2 3)))(print (simplify '(- 2 3)))(print (simplify '(* 2 3)))(print (simplify '(/ 2 3)))(print (simplify '(+ 0 x)))(print (simplify '(+ x 0)))(print (simplify '(- 0 x)))(print (simplify '(- x 0)))(print (simplify '(* 0 x)))(print (simplify '(* x 0)))(print (simplify '(* 1 x)))(print (simplify '(* x 1)))(print (simplify '(/ x 1)))(print (simplify '(/ x x)))(print (simplify '(sin 0)))(print (simplify '(cos 0)))(print (simplify '(exp 0)))(print (simplify '(log 1)))(print (simplify '(expt 2 0)))(print (simplify '(^ 2 0)))(print (simplify '(expt 2 1)))(print (simplify '(^ 2 1)))
Code:
((and (listp (caddr expr)) (elementp (car (caddr expr)) '(+ - * /)))(list (car expr) (simplify (cadr expr)) (simplify (caddr expr))))
Statistics: Posted by Liqu1d — Mon May 20, 2019 3:40 pm
Code:
(apply 'func-two (cons value-a (cons value-b params))
Isn't really needed since apply can be used like this:Code:
(apply #'func-two value-a value-b params)
Statistics: Posted by sylwester — Sun Mar 24, 2019 3:42 pm