(defun boba (s)
(let ((n (parse-integer s))
(l (length s))
(ds (map 'list #'digit-char-p s)))
(unless #1=(first ds)
(setf ds (rest ds) #1# (- #1#)))
(values (apply '+ n l ds) n l ds)))
(defun yoba (s)
(multiple-value-bind (r n len ds) (boba s)
(format t "~&~d + ~d + (~{~d~^ + ~}) = ~d" n len ds r)))
(print (boba "-42"))
(dolist (x '("-123" "99"))
(yoba x))
KGRlZnVuIGJvYmEgKHMpCiAgKGxldCAoKG4gIChwYXJzZS1pbnRlZ2VyIHMpKQogICAgICAgIChsICAobGVuZ3RoIHMpKQogICAgICAgIChkcyAobWFwICdsaXN0ICMnZGlnaXQtY2hhci1wIHMpKSkKICAgICh1bmxlc3MgIzE9KGZpcnN0IGRzKQogICAgICAoc2V0ZiBkcyAocmVzdCBkcykgIzEjICgtICMxIykpKQogICAgKHZhbHVlcyAoYXBwbHkgJysgbiBsIGRzKSBuIGwgZHMpKSkKCihkZWZ1biB5b2JhIChzKQogIChtdWx0aXBsZS12YWx1ZS1iaW5kIChyIG4gbGVuIGRzKSAoYm9iYSBzKQogICAgKGZvcm1hdCB0ICJ+Jn5kICsgfmQgKyAofnt+ZH5eICsgfn0pID0gfmQiIG4gbGVuIGRzIHIpKSkKCihwcmludCAoYm9iYSAiLTQyIikpCgooZG9saXN0ICh4ICcoIi0xMjMiICI5OSIpKQogICh5b2JhIHgpKQ==