;;; -*- lexical-binding: t -*- ;; ;; this file: ;; https://dataswamp.org/~incal/emacs-init/bmi.el ;; ;; ------------------------------------------------ ;; (update-bmi 82.0 1.80) ; 25.3 ;; ------------------------------------------------ ;; underweight very severely < 15 ;; underweight severely 15 ;; underweight 16 ;; healthy weight 18.5 ;; overweight 25 ;; obese moderately 30 ;; obese severely 35 ;; obese very severely 40 ;; obese morbidly 45 ;; obese super 50 ;; obese hyper 60 ;; ------------------------------------------------ ;; https://en.wikipedia.org/wiki/Body_mass_index ;; ------------------------------------------------ (defun update-bmi (w l) (let*((bmi-value (/ w (expt l 2))) (bmi-format (format "%.1f" bmi-value)) ) (unless (looking-at "[[:space:]]*$") (kill-line) ) (insert (format " ; %s" bmi-format)) (save-buffer) (string-to-number bmi-format) )) ;; (format "%+.2g%%" (- (* 100 (/ 25.3 25.0)) 100))