* [Rust](https://rust-lang.org)
* [Go](https://golang.org)
* [Joker](https://joker-lang.org)
+* [Racket](https://racket-lang.org)
## Disclaimer
The implementations are written with hardly 3 hours of experience with each language and will perform poorly. Use at your own risk if you want to.
--- /dev/null
+#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)