(* Navne * Copyright 1996 Peter Sestoft. Må kopieres og modificeres jvfr. GNU General Public License *) open Basis infix && local (* navne *) val praefikser = #["Brønd", "Bøg", "Dal", "Dyb", "Høj", "Holm", "Kål", "Lang", "Linde", "Magle", "Malm", "Mel", "Møl", "Nør", "Ring", "Rosen", "Skov", "Strand", "Stub", "Sund", "Sø", "Sønder", "Tud"] val suffikser = #["ager", "balle", "borg", "by", "gaard", "gård", "holm", "kjær", "kær", "lund", "sted", "toft", "vad"] val senner = #["Ander", "Andreas", "Bertel", "Clau", "Erik", "Han", "Jen", "Jørgen", "Karl", "Knud", "Konrad", "Kristoffer", "Lar", "Lorent", "Niel", "Ole", "Peder", "Peter", "Poul", "Søren"] fun forbogstav antal = let val mulige = "ABCDEFGHIJKLMNOPRST" fun vaelg () = implode [CharVector.sub(mulige, terning (size mulige) - 1), #"."] in concat (List.tabulate(antal, fn _=> vaelg ())) end in fun navn () = Str (forbogstav (terning 2)) && Str (concat (vaelgfra praefikser :: vaelgfra suffikser :: (if ssh 0.4 then (if ssh 0.3 then ["-"] else [" "]) @ vaelgfra senner :: ["sen"] else []))) end (* navne *) local (* titler *) val praefikser = #["afdelings", "center", "divisions", "forsknings", "informatik", "kvalitets", "sektions", "sektor", "senior", "uddannelses", "udviklings", "vice"] val suffikser = #["chef", "direktør", "konsulent", "koordinator", "leder", "rådgiver", "sekretær", "specialist"] in fun titel () = Str (vaelgfra praefikser ^ vaelgfra suffikser) end (* titler *) fun person () = titel () && navn ()