;; simple math string parser
;; arguments:
;; expr - the string in form: "A Space Symbol Space B"
;; where A and B the strings wich are represents a numeric values
;; i.e. "100 - 50", "100 / 50" etc
(defun expresseval(expr / lst sym)
(setq lst (read (strcat "(" expr ")"))
sym (cadr lst))
(cond ((/= (length lst) 3)
nil)
((equal sym '+)
(+ (car lst) (caddr lst)))
((equal sym '-)
(- (car lst) (caddr lst)))
((equal sym '*)
(* (car lst) (caddr lst)))
((equal sym '/)
(/ (car lst) (caddr lst)))
(T nil)
)
)
Usage: (setq plwid (expresseval "25.64 - 15.45"))
~'J'~ 菲索,你收到我的私人留言了吗?
查看我的回复
干杯
~'J'~
页:
1
[2]