; 10 進数で数値と認められる文字以外を除去したのち ; それらを全て足し合わせる (defun main () ; remove-if-not test sequence &key from-end start end count key ⇒ result-sequence ; sequence の中で test を満たすシーケンスを返す (let* ((s (remove-if-not ; digit-char-p char &optional radix ⇒ weight ; char が radix で指定された基数の数字か調べそれに値する重みを返す ; デフォルトでは radix は 10 #'digit-char-p (read-line))) ; reduce function sequence &key key from-end start end initial-value ⇒ result ; key が指定されると sequence の各要素にたいして key 関数が 1 度ずつ適用される (ans (reduce #'+ s :key #'digit-char-p))) (princ ans) (terpri))) (main)