#!/usr/local/bin/sbcl --script ;http://colabv6.dan.co.jp/lleval.html ;below code runs on website (defvar inputs (list 1 2 6 8 28 46))   (defun perfectNumberFunctional (number)   (= number      (loop for x from 1 below number           when (= 0               (mod number x))                sum x)))   (defun perfectNumberImperative (number)    (defvar sum 0)    (setq sum 0)    (loop      for x from 1 to (- number 1)      when ( = 0 (mod number x) )      do (setq sum (+ sum x))    )    (= sum number) )   (format t "* Imperative *~%") (dolist (x inputs)     (princ x)     (princ " is")     (if (perfectNumberImperative x) (princ "") (princ " NOT"))     (princ " Perfect ")     (format t "~%") )