caps ← {ack ign←'' ''} ##.von chars ⍝ Capitalise first letters of names.
Suggested by Dick Bowman, this function by Veli-Matti Jantunen produces appro-
priate capitalisation of a name. The function may be made to capitalise a "root"
name following a prefix such as Mc or Mac, but leave separators such as le and
von in lower case.
The optional left argument is a 2-item, depth-3 vector of prefixes to acknowl-
edge (ack) and ignore (ign). The argument is permissive in accepting less deeply
nested vectors:
Depth-3 vector general case: · · · · (ack ack ...) (ign ign ...)
Depth-2 vector 'one' 'two' ... is intepreted: (one two ...) ( )
Depth-1 vector 'one' is interpreted: · · (one ) ( )
Missing left argument: ( ) ( )
Examples:
titles←'margaretha von bahr' 'ahti von toilet' 'leonardo da vinci' 'william of orange' 'llywelyn ap gruffudd' 'guzman el bueno' 'winnie the pooh'
↑von¨titles ⍝ default capitalisation.
Margaretha von Bahr
Ahti von Toilet
Leonardo da Vinci
William of Orange
Llywelyn ap Gruffudd
Guzman el Bueno
Winnie the Pooh
von'd''annunzio t''haarlem' ⍝ caps after "'".
d'Annunzio t'Haarlem
von'åkerlund æsop' ⍝ national language caps.
Åkerlund Æsop
'Mc'von'nasty norman mctavish o''reilly' ⍝ acknowledge "Mc" prefix.
Nasty Norman McTavish O'Reilly
von 'Lorenzo de'' Medici Mohammed el-Gerousch c/o al-Ahram'
Lorenzo de' Medici Mohammed el-Gerousch c/o al-Ahram
names←'mcgryver macintosh macho dicaprio dickens'
von names ⍝ default caps,
Mcgryver Macintosh Macho Dicaprio Dickens
'mc' 'mac' 'di' von names ⍝ ... with Mc, Mac, Di,
McGryver MacIntosh MacHo DiCaprio DiCkens
('Mc' 'Mac' 'Di')('Mach' 'Dick') von names ⍝ ... except MacH, DiCk.
McGryver MacIntosh Macho DiCaprio Dickens
See also: lcase ucase words
Back to: contents
Back to: Workspaces