File extension is in extensions list: Difference between revisions

Content added Content deleted
(Added nim implementation.)
(Rename Perl 6 -> Raku, alphabetize, minor clean-up)
Line 280: Line 280:
Filename: "MyData" | Extension: "" | FALSE
Filename: "MyData" | Extension: "" | FALSE
</pre>
</pre>



=={{header|C}}==
=={{header|C}}==
Line 1,297: Line 1,296:
MyData_v1.0.tar.bz2 - true
MyData_v1.0.tar.bz2 - true
MyData_v1.0.bz2 - false
MyData_v1.0.bz2 - false
</pre>


=={{header|Perl 6}}==

Does the extra credit requirement.

<lang perl6>sub check-extension ($filename, *@extensions) {
so $filename ~~ /:i '.' @extensions $/
}

# Testing:

my @extensions = <zip rar 7z gz archive A## tar.bz2>;
my @files= <
MyData.a## MyData.tar.Gz MyData.gzip MyData.7z.backup MyData... MyData
MyData_v1.0.tar.bz2 MyData_v1.0.bz2
>;
say "{$_.fmt: '%-19s'} - {check-extension $_, @extensions}" for @files;</lang>

{{out}}
<pre>
MyData.a## - True
MyData.tar.Gz - True
MyData.gzip - False
MyData.7z.backup - False
MyData... - False
MyData - False
MyData_v1.0.tar.bz2 - True
MyData_v1.0.bz2 - False
</pre>
</pre>


Line 1,544: Line 1,513:
MyData_v1.0.tar.bz2 #t
MyData_v1.0.tar.bz2 #t
MyData_v1.0.bz2 #f
MyData_v1.0.bz2 #f
</pre>

=={{header|Raku}}==
(formerly Perl 6)

Does the extra credit requirement.

<lang perl6>sub check-extension ($filename, *@extensions) {
so $filename ~~ /:i '.' @extensions $/
}

# Testing:

my @extensions = <zip rar 7z gz archive A## tar.bz2>;
my @files= <
MyData.a## MyData.tar.Gz MyData.gzip MyData.7z.backup MyData... MyData
MyData_v1.0.tar.bz2 MyData_v1.0.bz2
>;
say "{$_.fmt: '%-19s'} - {check-extension $_, @extensions}" for @files;</lang>

{{out}}
<pre>
MyData.a## - True
MyData.tar.Gz - True
MyData.gzip - False
MyData.7z.backup - False
MyData... - False
MyData - False
MyData_v1.0.tar.bz2 - True
MyData_v1.0.bz2 - False
</pre>
</pre>