• Re: removeText

    From B. Pym@21:1/5 to p....@javamonkey.com on Thu Sep 26 02:07:04 2024
    XPost: comp.lang.scheme

    A monkey (<p....@javamonkey.com>) wrote:

    Kenny Tilton <ktilton@nyc.rr.com> writes:

    Cool. Now here is a version using loop:

    (defun remove-text (text-to-remove text)
    (loop with remove-length = (length text-to-remove)
    for i = (search text-to-remove text)
    then (search text-to-remove text :start2 i)
    while i
    do (setq text (concatenate 'string
    (subseq text 0 i)
    (subseq text (+ i remove-length))))
    finally (return text)))

    Just to point out a useful LOOP idiom, here's another way:

    (defun remove-text (text-to-remove text)
    (with-output-to-string (s)
    (loop
    with remove-length = (length text-to-remove)
    for prev-end = 0 then (+ start remove-length)
    for start = (search text-to-remove text :start2 prev-end)
    do (write-string text s :start prev-end :end start)
    while start)))

    Gauche Scheme:

    (define (remove-text trash text)
    (string-join (string-split text trash) ""))

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)