Returns the position of the first occurance of target in source, or -1 if it does not occur.
(define (string-index source target) ;; Finds first occurance of 'target' in 'source' (let loop ((str source) (pos 0)) (if (< (string-length str) (string-length target)) -1 (if (string=? (substring str 0 (string-length target)) target) pos (loop (substring str 1 (string-length str)) (+ pos 1))))))