164 lines
3.4 KiB
Elm
164 lines
3.4 KiB
Elm
module Names.Tools exposing (..)
|
|
|
|
{-| The Tools module helps with the generation of names.
|
|
-}
|
|
|
|
import Random exposing (Generator)
|
|
|
|
|
|
chooseFrom2 : Generator a -> Generator a -> Generator a
|
|
chooseFrom2 a b =
|
|
Random.uniform a [ b ]
|
|
|> Random.andThen identity
|
|
|
|
|
|
chooseFrom3 : Generator a -> Generator a -> Generator a -> Generator a
|
|
chooseFrom3 a b c =
|
|
Random.uniform a [ b, c ]
|
|
|> Random.andThen identity
|
|
|
|
|
|
chooseFrom4 :
|
|
Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
chooseFrom4 a b c d =
|
|
Random.uniform a [ b, c, d ]
|
|
|> Random.andThen identity
|
|
|
|
|
|
chooseFrom5 :
|
|
Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
chooseFrom5 a b c d e =
|
|
Random.uniform a [ b, c, d, e ]
|
|
|> Random.andThen identity
|
|
|
|
|
|
chooseFrom6 :
|
|
Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
chooseFrom6 a b c d e f =
|
|
Random.uniform a [ b, c, d, e, f ]
|
|
|> Random.andThen identity
|
|
|
|
|
|
chooseFrom7 :
|
|
Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
chooseFrom7 a b c d e f g =
|
|
Random.uniform a [ b, c, d, e, f, g ]
|
|
|> Random.andThen identity
|
|
|
|
|
|
chooseFrom8 :
|
|
Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
-> Generator a
|
|
chooseFrom8 a b c d e f g h =
|
|
Random.uniform a [ b, c, d, e, f, g, h ]
|
|
|> Random.andThen identity
|
|
|
|
|
|
map2 : Generator String -> Generator String -> Generator String
|
|
map2 =
|
|
Random.map2 (++)
|
|
|
|
|
|
map3 :
|
|
Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
map3 =
|
|
Random.map3 (\a b c -> a ++ b ++ c)
|
|
|
|
|
|
map4 :
|
|
Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
map4 =
|
|
Random.map4 (\a b c d -> a ++ b ++ c ++ d)
|
|
|
|
|
|
map5 :
|
|
Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
map5 =
|
|
Random.map5 (\a b c d e -> a ++ b ++ c ++ d ++ e)
|
|
|
|
|
|
map6 :
|
|
Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
map6 nm1 nm2 =
|
|
Random.map5 (\( a, b ) c d e f -> a ++ b ++ c ++ d ++ e ++ f)
|
|
(Random.map2 Tuple.pair nm1 nm2)
|
|
|
|
|
|
map7 :
|
|
Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
map7 nm1 nm2 nm3 nm4 =
|
|
Random.map5 (\( a, b ) ( c, d ) e f g -> a ++ b ++ c ++ d ++ e ++ f ++ g)
|
|
(Random.map2 Tuple.pair nm1 nm2)
|
|
(Random.map2 Tuple.pair nm3 nm4)
|
|
|
|
|
|
map8 :
|
|
Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
-> Generator String
|
|
map8 nm1 nm2 nm3 nm4 nm5 nm6 =
|
|
Random.map5 (\( a, b ) ( c, d ) ( e, f ) g h -> a ++ b ++ c ++ d ++ e ++ f ++ g ++ h)
|
|
(Random.map2 Tuple.pair nm1 nm2)
|
|
(Random.map2 Tuple.pair nm3 nm4)
|
|
(Random.map2 Tuple.pair nm5 nm6)
|