[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ?
Hi Sam,
this is my simple solution ... propably neither efficient nor
exceptionally elegant but R5RS-compliant and it seems to work.
Sebastian
PS: Greetings to your teachers.
(define eat-spaces
(lambda (str)
(let* ((str str)
(len (string-length str)))
(let F ((i 0))
(cond ((= i len) "")
((char-whitespace? (string-ref str i)) (F (+ i 1)))
(#t (substring str i len)))))))
(define next-word
(lambda (str)
(let* ((str (eat-spaces str))
(len (string-length str)))
(let F ((i 0))
(cond ((= i len) (list str ""))
((char-whitespace? (string-ref str i))
(list (substring str 0 i)
(substring str (+ i 1) len)))
(#t (F (+ i 1))))))))
(define string->word-list
(lambda (str)
(let* ((x (next-word str))
(word (car x))
(rest (cadr x)))
(cond
((= (string-length word) 0) '() )
((= (string-length rest) 0) (list word))
(#t (cons word (string->word-list rest)))))))
(string->word-list
"in the past few weeks I've been investigating")
=>
("in" "the" "past" "few" "weeks" "I've" "been" "investigating")
-------------------
> hello
>
> i'm trying to writing a fonction with scheme that can convertir a
string
> like
> "in the past few weeks I've been investigating"
> to a list containing :
> ("in" "the" "past" "few" "weeks" "i've" "been" "investigating")
>
> so i will be thinkfull if somebody have the solution.
>
> sam
- Follow-Ups:
- RE: ?
- From: "Anton van Straaten" <anton@appsolutions.com>
- References:
- No Subject
- From: "ME ElasMario" <samasmar@hotmail.com>