#lang racket (define tag "tag") (define start-sequence "#+") (define tag-match? ( lambda (line) (and (string-prefix? line start-sequence) (string-contains? line tag)))) ;; TODO Make recursive (define files (filter file-exists? (directory-list))) (define (find-file files) (when (not (empty? files)) (define file (first files)) (define (find-line lines) (when (not (empty? lines)) (if (tag-match? (first lines)) (displayln file) (find-line (rest lines))) )) (find-line (file->lines file)) (find-file (rest files)) )) (find-file files)