[plt-scheme] critique of some code

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Sun Dec 6 22:31:08 EST 2009

Why not use regexp-match-positions? 

On Dec 6, 2009, at 10:27 PM, Todd O'Bryan wrote:

> I still think imperatively, but I'm working on it.
> 
> I just wrote the equivalent of Java's String indexOf() method and am
> wondering if I got something that a Schemer would be satisfied with.
> 
> Here's the code, with tests:
> 
> (define (string-index-of str sub)
>  (let ([l1 (string-length str)]
>        [l2 (string-length sub)])
>    (or (and (>= l1 l2)
>             (ormap
>              (lambda (start)
>                (if (string=? (substring str start (+ start l2))
>                              sub)
>                    start
>                    #f))
>              (build-list (add1 (- l1 l2)) (lambda (x) x))))
>        -1)))
> 
> (check-expect (string-index-of "abcd" "a") 0)
> (check-expect (string-index-of "abc" "bc") 1)
> (check-expect (string-index-of "abcd" "d") 3)
> (check-expect (string-index-of "abcd" "de") -1)
> (check-expect (string-index-of "abcd" "abcde") -1)
> 
> Did I miss something that would have made this clearer or more succinct?
> 
> Todd
> _________________________________________________
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme



Posted on the users mailing list.