module UkrainianLControl.Arr (
genControl,
nSymbols
) where
import Data.Char (isDigit)
import CaseBi.Arr
nSymbols :: String -> Int
nSymbols :: String -> Int
nSymbols String
xs | String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null String
xs = Int
31416::Int
| Bool
otherwise = Int -> [(Int, Int)] -> Int -> Int
forall a b. Ord a => b -> [(a, b)] -> a -> b
getBFstLSorted' (Int
31416::Int) ((Int -> (Int, Int)) -> [Int] -> [(Int, Int)]
forall a b. (a -> b) -> [a] -> [b]
map (\Int
n -> (Int
n, (Int
10Int -> Int -> Int
forall a b. (Num a, Integral b) => a -> b -> a
^Int
n Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
1)::Int)) [Int
0..Int
9]) (let temp :: Int
temp = String -> Int
forall a. Read a => String -> a
read String
xs::Int in if Int
temp Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
<= Int
9 Bool -> Bool -> Bool
&& Int
temp Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
0
then Int
temp
else String -> Int
forall a. HasCallStack => String -> a
error String
"Please, specify a digit as a command line argument for the program!")
genControl :: String -> (String, (String, String))
genControl :: String -> (String, (String, String))
genControl (Char
x:String
xs) | Char
x Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'f' = ([String -> Char
forall a. [a] -> a
head String
xs], (String
"-C" String -> String -> String
forall a. [a] -> [a] -> [a]
++ (if (String -> String -> Ordering
forall a. Ord a => a -> a -> Ordering
compare (String -> String
forall a. [a] -> [a]
tail String
xs) String
"9" Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
/= Ordering
GT) Bool -> Bool -> Bool
&& (String -> String -> Ordering
forall a. Ord a => a -> a -> Ordering
compare (String -> String
forall a. [a] -> [a]
tail String
xs) String
"0" Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
/= Ordering
LT) then Int -> String -> String
forall a. Int -> [a] -> [a]
take Int
1 (String -> String) -> (String -> String) -> String -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> String
forall a. [a] -> [a]
tail (String -> String) -> String -> String
forall a b. (a -> b) -> a -> b
$ String
xs else String
"8"), String
".flac"))
| Char
x Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'o' = ([String -> Char
forall a. [a] -> a
head String
xs], (String
"-C" String -> String -> String
forall a. [a] -> [a] -> [a]
++ (if ((String -> String -> Ordering
forall a. Ord a => a -> a -> Ordering
compare (String -> String
forall a. [a] -> [a]
tail String
xs) String
"9" Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
/= Ordering
GT) Bool -> Bool -> Bool
&& (String -> String -> Ordering
forall a. Ord a => a -> a -> Ordering
compare (String -> String
forall a. [a] -> [a]
tail String
xs) String
"0" Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
/= Ordering
LT)) then Int -> String -> String
forall a. Int -> [a] -> [a]
take Int
1 (String -> String) -> (String -> String) -> String -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> String
forall a. [a] -> [a]
tail (String -> String) -> String -> String
forall a b. (a -> b) -> a -> b
$ String
xs else if (String -> String
forall a. [a] -> [a]
tail String
xs String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
"10") then String
"10" else String
"-1"), String
".ogg"))
| Char
x Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'w' = ([String -> Char
forall a. [a] -> a
head String
xs], (String
"-r" String -> String -> String
forall a. [a] -> [a] -> [a]
++ (if ((String -> String -> Ordering
forall a. Ord a => a -> a -> Ordering
compare (String -> String
forall a. [a] -> [a]
tail String
xs) String
"4" Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
/= Ordering
GT) Bool -> Bool -> Bool
&& (String -> String -> Ordering
forall a. Ord a => a -> a -> Ordering
compare (String -> String
forall a. [a] -> [a]
tail String
xs) String
"0" Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
/= Ordering
LT)) then String
"11025" else String
"22050"), String
".wav"))
| Char -> Bool
isDigit Char
x = ([Char
x], (String
"", String
".wav"))
| Bool
otherwise = (String
"", (String
"", String
".wav"))
genControl [] = (String
"", (String
"", String
".wav"))