Abbreviations, automatic: Difference between revisions

m
addded scrolling output
m (→‎{{header|Wren}}: Minor tidy)
m (addded scrolling output)
 
(5 intermediate revisions by 5 users not shown)
Line 145:
V word_count = words.len
I word_count != list_size
X.throw ValueError(‘Not enough entries, expected #. found #.’.format(list_size, word_count))
 
V abbreviation_length = 1
Line 2,975:
Readln;
end.</syntaxhighlight>
 
=={{header|Emacs Lisp}}==
<syntaxhighlight lang="lisp">
(defun days-of-week ()
"Find minimum abbreviation length of days of week."
(let ((current-line-list))
(find-file "Days_of_week.txt") ; open file or switch to buffer
(beginning-of-buffer) ; go to the top of the buffer
(dolist (current-line (split-string (buffer-string) "\n")) ; go line by line through buffer
(setq current-line-list (split-string current-line " ")) ; change each line into list of days of week
(cycle-days current-line-list))))
 
(defun cycle-days (list-of-days)
"Find shortest unique abbreviation in LIST-OF-DAYS list."
(let ((abbrev-list)
(abbrev-length 1)
(current-abbrev)
(looking-for-shortest-list "yes"))
(if (= (length list-of-days) 0) ; if list is empty (i.e., blank line)
(setq looking-for-shortest-list nil)) ; then don't look for the shortest unique abbreviations
(while looking-for-shortest-list ; as long as we are looking for the shortest unique abbreviations
(setq abbrev-list (abbreviate-list list-of-days abbrev-length)) ; get a list of abbreviated day names
(if (= (length list-of-days) (length (seq-uniq abbrev-list))) ; if abbreviated list has no duplicates
(progn
(message (format "%d %s" abbrev-length list-of-days)) ; then in echo buffer show length and days
(setq looking-for-shortest-list nil)) ; also, then don't look for the shortest unique abbreviations
(setq abbrev-length (+ abbrev-length 1)))))) ; else increase the length of the abbreviation; loop to while
 
(defun abbreviate-list (list abbreviation-length)
"Take each element of LIST and abbreviate to ABBREVIATION-LENGTH variable."
(let ((abbrev-list)
(abbrev-element))
(dolist (one-element list) ; loop through each day of week
(if (>= (length one-element) abbreviation-length) ; if the day of week is at least as long as the abbreviation
(setq abbrev-element (substring one-element 0 abbreviation-length)) ; abbreviate the day of the week
(setq abbrev-element one-element)) ; otherwise don't abbreviate
(push abbrev-element abbrev-list)) ; put the abbreviated/non-abbreviated day on our list
abbrev-list)) ; return the list of abbreviated days
</syntaxhighlight>
{{out}}
(days-of-week)
<pre style="height:45ex">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)
4 (Guiragui Yergou_shapti Yerek_shapti Tchorek_shapti Hink_shapti Ourpat Shapat)
2 (domingu llunes martes miércoles xueves vienres sábadu)
2 (Bazar_gÜnÜ Birinci_gÜn Çkinci_gÜn ÜçÜncÜ_gÜn DÖrdÜncÜ_gÜn Bes,inci_gÜn Altòncò_gÜn)
6 (Igande Astelehen Astearte Asteazken Ostegun Ostiral Larunbat)
4 (Robi_bar Shom_bar Mongal_bar Budhh_bar BRihashpati_bar Shukro_bar Shoni_bar)
2 (Nedjelja Ponedeljak Utorak Srijeda Cxetvrtak Petak Subota)
5 (Disul Dilun Dimeurzh Dimerc’her Diriaou Digwener Disadorn)
2 (nedelia ponedelnik vtornik sriada chetvartak petak sabota)
12 (sing_kei_yaht sing_kei_yat sing_kei_yee sing_kei_saam sing_kei_sie sing_kei_ng sing_kei_luk)
4 (Diumenge Dilluns Dimarts Dimecres Dijous Divendres Dissabte)
16 (Dzeenkk-eh Dzeehn_kk-ehreh Dzeehn_kk-ehreh_nah_kay_dzeeneh Tah_neesee_dzeehn_neh Deehn_ghee_dzee-neh Tl-oowey_tts-el_dehlee Dzeentt-ahzee)
6 (dy_Sul dy_Lun dy_Meurth dy_Mergher dy_You dy_Gwener dy_Sadorn)
2 (Dimanch Lendi Madi Mèkredi Jedi Vandredi Samdi)
2 (nedjelja ponedjeljak utorak srijeda cxetvrtak petak subota)
2 (nede^le ponde^lí úterÿ str^eda c^tvrtek pátek sobota)
2 (Sondee Mondee Tiisiday Walansedee TOOsedee Feraadee Satadee)
2 (s0ndag mandag tirsdag onsdag torsdag fredag l0rdag)
2 (zondag maandag dinsdag woensdag donderdag vrijdag zaterdag)
2 (Diman^co Lundo Mardo Merkredo ^Jaùdo Vendredo Sabato)
1 (pÜhapäev esmaspäev teisipäev kolmapäev neljapäev reede laupäev)
1 ()
7 (Diu_prima Diu_sequima Diu_tritima Diu_quartima Diu_quintima Diu_sextima Diu_sabbata)
2 (sunnudagur mánadagur tÿsdaguy mikudagur hósdagur friggjadagur leygardagur)
2 (Yek_Sham’beh Do_Sham’beh Seh_Sham’beh Cha’har_Sham’beh Panj_Sham’beh Jom’eh Sham’beh)
2 (sunnuntai maanantai tiistai keskiviiko torsktai perjantai lauantai)
2 (dimanche lundi mardi mercredi jeudi vendredi samedi)
4 (Snein Moandei Tiisdei Woansdei Tonersdei Freed Sneon)
2 (Domingo Segunda_feira Martes Mércores Joves Venres Sábado)
2 (k’vira orshabati samshabati otkhshabati khutshabati p’arask’evi shabati)
2 (Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag)
2 (Kiriaki’ Defte’ra Tri’ti Teta’rti Pe’mpti Paraskebi’ Sa’bato)
3 (ravivaar somvaar mangalvaar budhvaar guruvaar shukravaar shanivaar)
6 (pópule pó‘akahi pó‘alua pó‘akolu pó‘ahá pó‘alima pó‘aono)
7 (Yom_rishon Yom_sheni Yom_shlishi Yom_revi’i Yom_chamishi Yom_shishi Shabat)
3 (ravivara somavar mangalavar budhavara brahaspativar shukravara shanivar)
3 (vasárnap hétfö kedd szerda csütörtök péntek szombat)
2 (Sunnudagur Mánudagur ╞riδjudagur Miδvikudagar Fimmtudagur FÖstudagur Laugardagur)
2 (sundio lundio mardio merkurdio jovdio venerdio saturdio)
3 (Minggu Senin Selasa Rabu Kamis Jumat Sabtu)
2 (Dominica Lunedi Martedi Mercuridi Jovedi Venerdi Sabbato)
4 (Dé_Domhnaigh Dé_Luain Dé_Máirt Dé_Ceadaoin Dé_ardaoin Dé_hAoine Dé_Sathairn)
2 (domenica lunedí martedí mercoledí giovedí venerdí sabato)
2 (Nichiyou_bi Getzuyou_bi Kayou_bi Suiyou_bi Mokuyou_bi Kin’you_bi Doyou_bi)
1 (Il-yo-il Wol-yo-il Hwa-yo-il Su-yo-il Mok-yo-il Kum-yo-il To-yo-il)
7 (Dies_Dominica Dies_Lunæ Dies_Martis Dies_Mercurii Dies_Iovis Dies_Veneris Dies_Saturni)
3 (sve-tdien pirmdien otrdien tresvdien ceturtdien piektdien sestdien)
2 (Sekmadienis Pirmadienis Antradienis Trec^iadienis Ketvirtadienis Penktadienis S^es^tadienis)
3 (Wangu Kazooba Walumbe Mukasa Kiwanuka Nnagawonye Wamunyi)
12 (xing-_qi-_rì xing-_qi-_yi-. xing-_qi-_èr xing-_qi-_san-. xing-_qi-_sì xing-_qi-_wuv. xing-_qi-_liù)
3 (Jedoonee Jelune Jemayrt Jecrean Jardaim Jeheiney Jesam)
3 (Jabot Manre Juje Wonje Taije Balaire Jarere)
5 (geminrongo minòmishi mártes mièrkoles misheushi bèrnashi mishábaro)
2 (Ahad Isnin Selasa Rabu Khamis Jumaat Sabtu)
2 (sφndag mandag tirsdag onsdag torsdag fredag lφrdag)
7 (lo_dimenge lo_diluns lo_dimarç lo_dimèrcres lo_dijòus lo_divendres lo_dissabte)
4 (djadomingo djaluna djamars djarason djaweps djabièrna djasabra)
2 (Niedziela Poniedzial/ek Wtorek S,roda Czwartek Pia,tek Sobota)
3 (Domingo segunda-feire terça-feire quarta-feire quinta-feire sexta-feira såbado)
1 (Domingo Lunes martes Miercoles Jueves Viernes Sabado)
2 (Duminicª Luni Mart’i Miercuri Joi Vineri Sâmbªtª)
2 (voskresenie ponedelnik vtornik sreda chetverg pyatnitsa subbota)
4 (Sunday Di-luain Di-màirt Di-ciadain Di-ardaoin Di-haoine Di-sathurne)
2 (nedjelja ponedjeljak utorak sreda cxetvrtak petak subota)
5 (Sontaha Mmantaha Labobedi Laboraro Labone Labohlano Moqebelo)
2 (Iridha- Sandhudha- Anga.haruwa-dha- Badha-dha- Brahaspa.thindha- Sikura-dha- Sena.sura-dha-)
2 (nedel^a pondelok utorok streda s^tvrtok piatok sobota)
2 (Nedelja Ponedeljek Torek Sreda Cxetrtek Petek Sobota)
2 (domingo lunes martes miércoles jueves viernes sábado)
2 (sonde mundey tude-wroko dride-wroko fode-wroko freyda Saturday)
7 (Jumapili Jumatatu Jumanne Jumatano Alhamisi Ijumaa Jumamosi)
2 (söndag måndag tisdag onsdag torsdag fredag lordag)
2 (Linggo Lunes Martes Miyerkoles Huwebes Biyernes Sabado)
6 (Lé-pài-jít Pài-it Pài-jï Pài-sañ Pài-sì Pài-gÖ. Pài-lák)
7 (wan-ar-tit wan-tjan wan-ang-kaan wan-phoet wan-pha-ru-hat-sa-boh-die wan-sook wan-sao)
5 (Tshipi Mosupologo Labobedi Laboraro Labone Labotlhano Matlhatso)
6 (Pazar Pazartesi Sali Çar,samba Per,sembe Cuma Cumartesi)
2 (nedilya ponedilok vivtorok sereda chetver pyatnytsya subota)
8 (Chu?_Nhâ.t Thú*_Hai Thú*_Ba Thú*_Tu* Thú*_Na’m Thú*_Sáu Thú*_Ba?y)
6 (dydd_Sul dyds_Llun dydd_Mawrth dyds_Mercher dydd_Iau dydd_Gwener dyds_Sadwrn)
3 (Dibeer Altine Talaata Allarba Al_xebes Aljuma Gaaw)
7 (iCawa uMvulo uLwesibini uLwesithathu uLuwesine uLwesihlanu uMgqibelo)
2 (zuntik montik dinstik mitvokh donershtik fraytik shabes)
7 (iSonto uMsombuluko uLwesibili uLwesithathu uLwesine uLwesihlanu uMgqibelo)
7 (Dies_Dominica Dies_Lunæ Dies_Martis Dies_Mercurii Dies_Iovis Dies_Veneris Dies_Saturni)
11 (Bazar_gÜnÜ Bazar_ærtæsi Çærs,ænbæ_axs,amò Çærs,ænbæ_gÜnÜ CÜmæ_axs,amò CÜmæ_gÜnÜ CÜmæ_Senbæ)
2 (Sun Moon Mars Mercury Jove Venus Saturn)
2 (zondag maandag dinsdag woensdag donderdag vrijdag zaterdag)
2 (KoseEraa GyoOraa BenEraa Kuoraa YOwaaraa FeEraa Memenaa)
5 (Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Sonnabend)
1 (Domingo Luns Terza_feira Corta_feira Xoves Venres Sábado)
7 (Dies_Solis Dies_Lunae Dies_Martis Dies_Mercurii Dies_Iovis Dies_Veneris Dies_Sabbatum)
12 (xing-_qi-_tiàn xing-_qi-_yi-. xing-_qi-_èr xing-_qi-_san-. xing-_qi-_sì xing-_qi-_wuv. xing-_qi-_liù)
4 (djadomingu djaluna djamars djarason djaweps djabièrnè djasabra)
2 (Killachau Atichau Quoyllurchau Illapachau Chaskachau Kuychichau Intichau)
1 ()
nil
</pre>
 
 
=={{header|Erlang}}==
Line 3,203 ⟶ 3,347:
2 Killachau Atichau Quoyllurchau Illapachau Chaskachau Kuychichau Intichau
</pre>
 
=={{header|FreeBASIC}}==
{{trans|Yabasic}}
<syntaxhighlight lang="vbnet">Function Tokenize(text As String, tokens() As String) As Integer
Dim As Integer count = 0, posic = 1, start
While posic <= Len(text)
If Mid(text, posic, 1) <> " " Then
start = posic
While posic <= Len(text) Andalso Mid(text, posic, 1) <> " "
posic += 1
Wend
count += 1
tokens(count) = Mid(text, start, posic - start)
End If
posic += 1
Wend
Return count
End Function
 
Function Buscar(s As String) As Integer
Dim As Integer n, d, i, j
Dim As Boolean s_flag
Dim As String a, b
Dim As String r(1 To 100) ' Assuming a maximum of 100 tokens
n = Tokenize(s, r())
d = 1
Do
s_flag = True
For i = 1 To n
For j = i + 1 To n
a = Left(r(i), d)
b = Left(r(j), d)
If a = "" Or b = "" Then
s_flag = True
Exit For
Elseif a = b Then
s_flag = False
d += 1
Exit For
End If
Next j
If Not s_flag Then Exit For
Next i
Loop Until s_flag
Return d
End Function
 
Dim As Integer fileNum = Freefile()
If Open("days_of_week.txt" For Input As #fileNum) = 0 Then
Dim As String s
While Not Eof(fileNum)
Line Input #fileNum, s
Print Buscar(s); " "; s
Wend
Close #fileNum
Else
Print "Error opening file."
End If
 
Sleep</syntaxhighlight>
 
=={{header|FutureBasic}}==
Line 6,369 ⟶ 6,576:
5 Disul Dilun Dimeurzh Dimerc'her Diriaou Digwener Disadorn
2 nedelia ponedelnik vtornik sriada chetvartak petak sabota</pre>
 
=={{header|R}}==
<syntaxhighlight lang="R">
library(stringi)
 
abbrev <- function(w) {
w1 <- stri_split_fixed(w," ") %>% unlist()
if (length(w1) != 7) stop("Error: not enough days in the week.")
maxv <- max(sapply(w1,\(x) nchar(x)))
for (i in 1:maxv) {
tl <- stri_sub(w1,1,i) %>% unique() %>% length()
if (tl == 7) return(i)
}
}
 
# Main
lines <- readLines("daysOfWeek.txt")
for (l in lines) {
if (nchar(l) == 0) {
cat("\n")
} else {
cat(paste(abbrev(l),l),"\n")
}
}
 
</syntaxhighlight>
{{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
4 Guiragui Yergou_shapti Yerek_shapti Tchorek_shapti Hink_shapti Ourpat Shapat
2 domingu llunes martes miércoles xueves vienres sábadu
2 Bazar_gÜnÜ Birinci_gÜn Çkinci_gÜn ÜçÜncÜ_gÜn DÖrdÜncÜ_gÜn Bes,inci_gÜn Altòncò_gÜn
6 Igande Astelehen Astearte Asteazken Ostegun Ostiral Larunbat
4 Robi_bar Shom_bar Mongal_bar Budhh_bar BRihashpati_bar Shukro_bar Shoni_bar
2 Nedjelja Ponedeljak Utorak Srijeda Cxetvrtak Petak Subota
5 Disul Dilun Dimeurzh Dimerc'her Diriaou Digwener Disadorn
2 nedelia ponedelnik vtornik sriada chetvartak petak sabota
12 sing_kei_yaht sing_kei_yat sing_kei_yee sing_kei_saam sing_kei_sie sing_kei_ng sing_kei_luk
4 Diumenge Dilluns Dimarts Dimecres Dijous Divendres Dissabte
16 Dzeenkk-eh Dzeehn_kk-ehreh Dzeehn_kk-ehreh_nah_kay_dzeeneh Tah_neesee_dzeehn_neh Deehn_ghee_dzee-neh Tl-oowey_tts-el_dehlee Dzeentt-ahzee
6 dy_Sul dy_Lun dy_Meurth dy_Mergher dy_You dy_Gwener dy_Sadorn
2 Dimanch Lendi Madi Mèkredi Jedi Vandredi Samdi
2 nedjelja ponedjeljak utorak srijeda cxetvrtak petak subota
2 nede^le ponde^lí úterÿ str^eda c^tvrtek pátek sobota
2 Sondee Mondee Tiisiday Walansedee TOOsedee Feraadee Satadee
2 s0ndag mandag tirsdag onsdag torsdag fredag l0rdag
2 zondag maandag dinsdag woensdag donderdag vrijdag zaterdag
2 Diman^co Lundo Mardo Merkredo ^Jaùdo Vendredo Sabato
1 pÜhapäev esmaspäev teisipäev kolmapäev neljapäev reede laupäev
 
7 Diu_prima Diu_sequima Diu_tritima Diu_quartima Diu_quintima Diu_sextima Diu_sabbata
2 sunnudagur mánadagur tÿsdaguy mikudagur hósdagur friggjadagur leygardagur
2 Yek_Sham'beh Do_Sham'beh Seh_Sham'beh Cha'har_Sham'beh Panj_Sham'beh Jom'eh Sham'beh
2 sunnuntai maanantai tiistai keskiviiko torsktai perjantai lauantai
2 dimanche lundi mardi mercredi jeudi vendredi samedi
4 Snein Moandei Tiisdei Woansdei Tonersdei Freed Sneon
2 Domingo Segunda_feira Martes Mércores Joves Venres Sábado
2 k'vira orshabati samshabati otkhshabati khutshabati p'arask'evi shabati
2 Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag
2 Kiriaki' Defte'ra Tri'ti Teta'rti Pe'mpti Paraskebi' Sa'bato
3 ravivaar somvaar mangalvaar budhvaar guruvaar shukravaar shanivaar
6 pópule pó`akahi pó`alua pó`akolu pó`ahá pó`alima pó`aono
7 Yom_rishon Yom_sheni Yom_shlishi Yom_revi'i Yom_chamishi Yom_shishi Shabat
3 ravivara somavar mangalavar budhavara brahaspativar shukravara shanivar
3 vasárnap hétfö kedd szerda csütörtök péntek szombat
2 Sunnudagur Mánudagur ╞riδjudagur Miδvikudagar Fimmtudagur FÖstudagur Laugardagur
2 sundio lundio mardio merkurdio jovdio venerdio saturdio
3 Minggu Senin Selasa Rabu Kamis Jumat Sabtu
2 Dominica Lunedi Martedi Mercuridi Jovedi Venerdi Sabbato
4 Dé_Domhnaigh Dé_Luain Dé_Máirt Dé_Ceadaoin Dé_ardaoin Dé_hAoine Dé_Sathairn
2 domenica lunedí martedí mercoledí giovedí venerdí sabato
2 Nichiyou_bi Getzuyou_bi Kayou_bi Suiyou_bi Mokuyou_bi Kin'you_bi Doyou_bi
1 Il-yo-il Wol-yo-il Hwa-yo-il Su-yo-il Mok-yo-il Kum-yo-il To-yo-il
7 Dies_Dominica Dies_Lunæ Dies_Martis Dies_Mercurii Dies_Iovis Dies_Veneris Dies_Saturni
3 sve-tdien pirmdien otrdien tresvdien ceturtdien piektdien sestdien
2 Sekmadienis Pirmadienis Antradienis Trec^iadienis Ketvirtadienis Penktadienis S^es^tadienis
3 Wangu Kazooba Walumbe Mukasa Kiwanuka Nnagawonye Wamunyi
12 xing-_qi-_rì xing-_qi-_yi-. xing-_qi-_èr xing-_qi-_san-. xing-_qi-_sì xing-_qi-_wuv. xing-_qi-_liù
3 Jedoonee Jelune Jemayrt Jecrean Jardaim Jeheiney Jesam
3 Jabot Manre Juje Wonje Taije Balaire Jarere
5 geminrongo minòmishi mártes mièrkoles misheushi bèrnashi mishábaro
2 Ahad Isnin Selasa Rabu Khamis Jumaat Sabtu
2 sφndag mandag tirsdag onsdag torsdag fredag lφrdag
7 lo_dimenge lo_diluns lo_dimarç lo_dimèrcres lo_dijòus lo_divendres lo_dissabte
4 djadomingo djaluna djamars djarason djaweps djabièrna djasabra
2 Niedziela Poniedzial/ek Wtorek S,roda Czwartek Pia,tek Sobota
3 Domingo segunda-feire terça-feire quarta-feire quinta-feire sexta-feira såbado
1 Domingo Lunes martes Miercoles Jueves Viernes Sabado
2 Duminicª Luni Mart'i Miercuri Joi Vineri Sâmbªtª
2 voskresenie ponedelnik vtornik sreda chetverg pyatnitsa subbota
4 Sunday Di-luain Di-màirt Di-ciadain Di-ardaoin Di-haoine Di-sathurne
2 nedjelja ponedjeljak utorak sreda cxetvrtak petak subota
5 Sontaha Mmantaha Labobedi Laboraro Labone Labohlano Moqebelo
2 Iridha- Sandhudha- Anga.haruwa-dha- Badha-dha- Brahaspa.thindha- Sikura-dha- Sena.sura-dha-
2 nedel^a pondelok utorok streda s^tvrtok piatok sobota
2 Nedelja Ponedeljek Torek Sreda Cxetrtek Petek Sobota
2 domingo lunes martes miércoles jueves viernes sábado
2 sonde mundey tude-wroko dride-wroko fode-wroko freyda Saturday
7 Jumapili Jumatatu Jumanne Jumatano Alhamisi Ijumaa Jumamosi
2 söndag måndag tisdag onsdag torsdag fredag lordag
2 Linggo Lunes Martes Miyerkoles Huwebes Biyernes Sabado
6 Lé-pài-jít Pài-it Pài-jï Pài-sañ Pài-sì Pài-gÖ. Pài-lák
7 wan-ar-tit wan-tjan wan-ang-kaan wan-phoet wan-pha-ru-hat-sa-boh-die wan-sook wan-sao
5 Tshipi Mosupologo Labobedi Laboraro Labone Labotlhano Matlhatso
6 Pazar Pazartesi Sali Çar,samba Per,sembe Cuma Cumartesi
2 nedilya ponedilok vivtorok sereda chetver pyatnytsya subota
8 Chu?_Nhâ.t Thú*_Hai Thú*_Ba Thú*_Tu* Thú*_Na'm Thú*_Sáu Thú*_Ba?y
6 dydd_Sul dyds_Llun dydd_Mawrth dyds_Mercher dydd_Iau dydd_Gwener dyds_Sadwrn
3 Dibeer Altine Talaata Allarba Al_xebes Aljuma Gaaw
7 iCawa uMvulo uLwesibini uLwesithathu uLuwesine uLwesihlanu uMgqibelo
2 zuntik montik dinstik mitvokh donershtik fraytik shabes
7 iSonto uMsombuluko uLwesibili uLwesithathu uLwesine uLwesihlanu uMgqibelo
7 Dies_Dominica Dies_Lunæ Dies_Martis Dies_Mercurii Dies_Iovis Dies_Veneris Dies_Saturni
11 Bazar_gÜnÜ Bazar_ærtæsi Çærs,ænbæ_axs,amò Çærs,ænbæ_gÜnÜ CÜmæ_axs,amò CÜmæ_gÜnÜ CÜmæ_Senbæ
2 Sun Moon Mars Mercury Jove Venus Saturn
2 zondag maandag dinsdag woensdag donderdag vrijdag zaterdag
2 KoseEraa GyoOraa BenEraa Kuoraa YOwaaraa FeEraa Memenaa
5 Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Sonnabend
1 Domingo Luns Terza_feira Corta_feira Xoves Venres Sábado
7 Dies_Solis Dies_Lunae Dies_Martis Dies_Mercurii Dies_Iovis Dies_Veneris Dies_Sabbatum
12 xing-_qi-_tiàn xing-_qi-_yi-. xing-_qi-_èr xing-_qi-_san-. xing-_qi-_sì xing-_qi-_wuv. xing-_qi-_liù
4 djadomingu djaluna djamars djarason djaweps djabièrnè djasabra
2 Killachau Atichau Quoyllurchau Illapachau Chaskachau Kuychichau Intichau
</pre>
 
=={{header|Racket}}==
Line 6,569 ⟶ 6,905:
 
=={{header|REXX}}==
<syntaxhighlight lang="rexx"> /*REXX program finds the minimum length abbreviation for a lists of words (from a file).*/
parseiFID= arg'ABBREV_A.TAB' uw /*name of the file that has the table. /*obtain optional arguments from the CL*/
iFID=Say 'ABBREV_A.TABminimum' /*name ofdisplay the filefirst thatpart hasof the tabletitle. */
saySay 'minimumabbrev' center('days of the week',80) /*display the firsttitle part offor the titleoutput. */
saySay 'abbrev------' center("days'',80,'-') of the week", 80) /*display the titleseparator for the output. title line. */
say '══════' center("", 80, '═') /*display separator forprocess the titlefile lineuntil done. */
Do While lines(iFID)\==0
/* [↓] process the file until done. */
do while lines(iFID)\==0; days=linein(iFID) /* read a line (should contain 7 words).*/
If minLendays='' abb(days)Then /*find thecheck minimumfor abbreviationa lengthblank line or null line. */
Say ''
say right(minLen, 4) ' ' days /*display a somewhat formatted output. */
Else Do
end /*j*/
exit minLen=abb(days) /*stick a fork in it,find the we'reminimum allabbreviation donelength. */
Say right(minLen,4) ' ' days /*display a somewhat formatted output. */
/*──────────────────────────────────────────────────────────────────────────────────────*/
If minlen='????' Then
abb: procedure; parse arg x; #=words(x) /*obtain list of words; find how many.*/
if #==0Say then return '' >>> No unique abbreviation found /*check for a blank line or null line. */<<<'
End
@.= /*@. is a stemmed array of the words.*/
End
L=0 /*L is the max length of " " */
Exit do j=1 for #; @.j=word(x, j) /*assignstick toa fork in it,we're all done. array for faster processing*/
/*----------------------------------------------------------------------------------*/
L.j=length(@.j); L= max(L, L.j) /*find the maximum length of any item. */
abb: Procedure
end /*L*/
Parse Arg daylist /* obtain list of words /* [↓] determine minimum abbrev length*/
dayn=words(daylist) do m=1 for L; $= /* find how many. /*for all lengths, find a unique abbrev*/
day.='' do k=1 to #; a=left(@.k, m) /*getday. anis abbreviationa (withstemmed lengtharray of M)the words. */
L=0 if wordpos(a,$)\==0 then iterate M /*testL this abbreviation for uniqunessis the max length of the words. */
Do j=1 for dayn
$=$ a /*so far, it's unique; add to the list.*/
day.j=word(daylist,j) end /*kassign to array for faster processing */
L.j=length(day.j)
leave m /*a good abbreviation length was found.*/
L= max(L,L.j) end /*m find the maximum length of any item. */
End
return m</syntaxhighlight>
/* [?] determine minimum abbrev length */
Do m=1 To L
abblist='' /* for all lengths,find a unique abbrev */
Do k=1 to dayn
abbrev=strip(left(day.k,m)) /* get an abbreviation (with length M). */
If wordpos(abbrev,abblist)>0 Then /* not unique */
Iterate M /* try next length */
If length(abbrev)>=m Then
abblist=abblist abbrev /* so far,it's unique add to the list. */
End
leave /* a good abbreviation length was found. */
End
If m>L Then /* no unique abbreviation length found */
m='????'
Return m </syntaxhighlight>
{{out|output|text=&nbsp; when using the default input file containing the complete list of words:}}
<pre style="height:45ex">
26

edits