The version with the `count` feature of `loop` in Common Lisp:

    (defun count-up-down-characters-with-difference (input-string up-char down-char)
      "Given a string of any length, iterate each character of the string looking for up- and down-characters
    provided by the caller, and return the number of each, as well as the difference between them."
      (loop for c across input-string
            count (char-equal c up-char)   into count-up
            count (char-equal c down-char) into count-down
            finally (return (list count-up
                                  (- count-down)
                                  (- count-up count-down)))))