{-# 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 :: 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)