File extension is in extensions list: Difference between revisions

(Added Algol 68)
Line 732:
=={{header|Racket}}==
 
<lang racket>#lang racket/base
{{update|Racket}}
#lang racket
 
(define ((in-extensions-list? extns) f)'(".zip"
<lang racket>#lang racket/base
foo.c ".crar"
(require (only-in srfi/13 string-suffix-ci?)
(only-in racket/format ~a)) ".7z"
<pre>c: [NO EXTENSION] ".gz"
".archive"
foo.c# [NO EXTENSION] ".a##"
".tar.bz2"))
 
(define filenames '("MyData.a##"
(define ((in-extensions-list? extns) f)
"MyData.tar.Gz"
(findf (λ (e) (string-suffix-ci? e f)) extns))
"MyData.gzip"
"MyData.7z.backup"
"MyData..."
"MyData"
"MyData_v1.0.tar.bz2"
"MyData_v1.0.bz2"))
 
(define (string-right s n)
(define e.g.-extns '(".txt" ".gz" ".bat" ".c" ".c++" ".exe" ".pdf"))
(if (< (string-length s) n)
(define in-e.g.-extns-list? (in-extensions-list? e.g.-extns))
s
(define file-names
(substring s (- (string-length s) n))))
(list "c:" "txt" "text.txt" "text.TXT" "test.tar.gz" "test/test2.exe"
"test" "foo.c" "foo.C" "foo.C++" "foo.c#" "foo.zkl" "document.pdf"))
 
(for ((fdefine (file-extension-in-list? file-names))f lst)
(let ([lcase (string-downcase f)])
(printf "~a ~a~%" (~a #:width 20 f) (or (in-e.g.-extns-list? f) "[NO EXTENSION]")))</lang>
(ormap (lambda (x) (equal? (string-right lcase (string-length x)) x)) extensions)))
(for ((f (in-list filenames)))
(printf "~a ~a~%" (~a #:width 20 f) (or (infile-e.g.extension-extnsin-list? f) "[NO EXTENSION]"extensions)))</lang>
</lang>
{{out}}
<pre>
<pre>c: [NO EXTENSION]
txtMyData.a## [NO EXTENSION]#t
textMyData.txttar.Gz .txt#t
textMyData.TXTgzip .txt#f
testMyData.tar7z.gzbackup .gz#f
test/test2MyData...exe .exe #f
testMyData [NO EXTENSION]#f
MyData_v1.0.tar.bz2 #t
foo.c .c
fooMyData_v1.C0.bz2 .c#f
</pre>
foo.C++ .c++
foo.c# [NO EXTENSION]
foo.zkl [NO EXTENSION]
document.pdf .pdf</pre>
 
=={{header|REXX}}==
Anonymous user