{-# LANGUAGE OverloadedStrings #-}
module Text.Numerals.Prefix
(
latinPrefixes,
latinPrefixes',
latinPrefix,
)
where
import Data.Text (Text)
import Data.Vector (Vector, fromList, (!?))
latinPrefixes' ::
[Text]
latinPrefixes' :: [Text]
latinPrefixes' =
[ Text
"m",
Text
"b",
Text
"tr",
Text
"quadr",
Text
"quint",
Text
"sext",
Text
"sept",
Text
"oct",
Text
"non",
Text
"dec",
Text
"undec",
Text
"duodec",
Text
"tredec",
Text
"quattuordec",
Text
"quindec",
Text
"sedec",
Text
"septendec",
Text
"octodec",
Text
"novendec",
Text
"vigint",
Text
"unvigint",
Text
"duovigint",
Text
"tresvigint",
Text
"quattuorvigint",
Text
"quinvigint",
Text
"sesvigint",
Text
"septemvigint",
Text
"octovigint",
Text
"novemvigint",
Text
"trigint",
Text
"untrigint",
Text
"duotrigint",
Text
"trestrigint",
Text
"quattuortrigint",
Text
"quintrigint",
Text
"sestrigint",
Text
"septentrigint",
Text
"octotrigint",
Text
"noventrigint",
Text
"quadragint"
]
latinPrefixes ::
Vector Text
latinPrefixes :: Vector Text
latinPrefixes = [Text] -> Vector Text
forall a. [a] -> Vector a
fromList [Text]
latinPrefixes'
latinPrefix ::
Integral i =>
i ->
Maybe Text
latinPrefix :: forall i. Integral i => i -> Maybe Text
latinPrefix i
n = Vector Text
latinPrefixes Vector Text -> Int -> Maybe Text
forall a. Vector a -> Int -> Maybe a
!? (i -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral i
n Int -> Int -> Int
forall a. Num a => a -> a -> a
- Int
1)