(define (current-object-file scheme-file) (let ((object-file? (let ((object-file-prefix (string-append (path-strip-directory (path-strip-extension scheme-file)) ".o"))) (lambda (file) (string-prefix? object-file-prefix file))))) (let ((object-files (sort-list (filter object-file? (directory-files (path-directory scheme-file))) string>))) (if (null? object-files) #f (first object-files)))))
Comments welcome.
I don't have the utility functions that you use in that function, but if I read it correctly, it contains the same error that I made when implementing a function that does that very thing: it compares strings lexicographically, so if you have ten .o* files, it will choose .o2 and not .o10.
/Per