(defun replace-treeone-with-forest (s pre-str post-str) (let* ((search-str pre-str) (replace-str post-str) (search-len (length search-str)) (result "") (start 0) (pos (search search-str s :start2 start))) (loop while pos do (setq result (concatenate 'string result (subseq s start pos) replace-str)) (setq start (+ pos search-len)) (setq pos (search search-str s :start2 start))) (concatenate 'string result (subseq s start)))) (defun main () (princ (replace-treeone-with-forest (read-line) "treeone" "forest")) (terpri)) (main)