Abbreviations, automatic: Difference between revisions
Content added Content deleted
m (→{{header|Racket}}: header added) |
|||
Line 4,772: | Line 4,772: | ||
=={{header|Racket}}== |
=={{header|Racket}}== |
||
<lang racket>#lang racket |
|||
(require racket/set) |
|||
(define (abbr-length ss) |
|||
(for*/first ((l (in-range 1 (string-length (argmax string-length ss)))) |
|||
#:when (equal? (sequence-length |
|||
(for/set ((s ss)) |
|||
(substring s 0 (min l (string-length s))))) |
|||
(length ss))) |
|||
l)) |
|||
(module+ main |
|||
(define report-line |
|||
(match-lambda |
|||
["" ""] |
|||
[(and s (app string-split ss)) (format "~a ~a" (abbr-length ss) s)])) |
|||
(for-each (compose displayln report-line) (take (file->lines "data.txt") 5)))</lang> |
|||
{{out}} |
|||
<pre>2 Sunday Monday Tuesday Wednesday Thursday Friday Saturday |
|||
2 Sondag Maandag Dinsdag Woensdag Donderdag Vrydag Saterdag |
|||
4 E_djelë E_hënë E_martë E_mërkurë E_enjte E_premte E_shtunë |
|||
2 Ehud Segno Maksegno Erob Hamus Arbe Kedame |
|||
5 Al_Ahad Al_Ithinin Al_Tholatha'a Al_Arbia'a Al_Kamis Al_Gomia'a Al_Sabit</pre> |
|||
=={{header|Raku}}== |
=={{header|Raku}}== |