File extension is in extensions list: Difference between revisions

Content added Content deleted
m (→‎{{header|Perl}}: Fix link: Perl 6 --> Raku)
Line 484: Line 484:
}
}
</lang>
</lang>


=={{header|Clojure}}==
<lang Clojure>(defn matches-extension [ext s]
(re-find (re-pattern (str "\\." ext "$"))
(clojure.string/lower-case s)))

(defn matches-extension-list [ext-list s]
(some #(matches-extension % s) ext-list))</lang>

It is assumed that when extensions are "added to the system", they will be "normalized" to the expected (lower) case.

<lang Clojure>(defn normalize-extensions [ext-list]
(map clojure.string/lower-case ext-list))</lang>

{{out}}
<pre>
(def ext-list ["zip" "rar" "7z" "gz" "archive" "A##" "tar.bz2"])

(def exts (normalize-extensions ext-list))

(map (partial matches-extension-list exts)
["MyData.a##"
"MyData.tar.Gz"
"MyData.gzip"
"MyData.7z.backup"
"MyData..."
"MyData"
"MyData_v1.0.tar.bz2"
"MyData_v1.0.bz2"])

(".a##" ".gz" nil nil nil nil ".tar.bz2" nil)
</pre>


=={{header|D}}==
=={{header|D}}==