File extension is in extensions list: Difference between revisions
Content added Content deleted
SqrtNegInf (talk | contribs) 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}}== |