Safe Haskell | Safe |
---|---|
Language | Haskell98 |
Parser for the modename.par
file.
- type MODE = (Int, [Int], String)
- mode_starting_degree :: MODE -> Int
- mode_intervals :: MODE -> [Int]
- mode_description :: MODE -> String
- mode_degree :: MODE -> Int
- type MODENAM = (Int, Int, [MODE])
- modenam_modes :: MODENAM -> [MODE]
- modenam_search_seq :: MODENAM -> [Int] -> [MODE]
- modenam_search_seq1 :: MODENAM -> [Int] -> Maybe MODE
- modenam_search_description :: MODENAM -> String -> [MODE]
- mode_stat :: MODE -> [String]
- non_implicit_degree :: String -> Maybe Int
- is_non_implicit_degree :: String -> Bool
- is_integer :: String -> Bool
- parse_modenam_entry :: [String] -> MODE
- join_long_lines :: [String] -> [String]
- parse_modenam :: [String] -> MODENAM
- load_modenam :: IO MODENAM
Documentation
mode_starting_degree :: MODE -> Int Source #
mode_intervals :: MODE -> [Int] Source #
mode_description :: MODE -> String Source #
mode_degree :: MODE -> Int Source #
modenam_modes :: MODENAM -> [MODE] Source #
modenam_search_seq1 :: MODENAM -> [Int] -> Maybe MODE Source #
Expect one result.
mn <- load_modenam let sq = putStrLn . unlines . mode_stat . fromJust . modenam_search_seq1 mn sq [2,2,1,2,2,2,1] sq [2,1,2,2,1,2,2] sq [2,1,2,2,1,3,1] sq (replicate 6 2) sq [1,2,1,2,1,2,1,2] sq [2,1,2,1,2,1,2,1] sq (replicate 12 1)
modenam_search_description :: MODENAM -> String -> [MODE] Source #
Search for mode by description text.
map (modenam_search_description mn) ["Messiaen","Xenakis","Raga"]
Parser
non_implicit_degree :: String -> Maybe Int Source #
Bracketed integers are a non-implicit starting degree.
map non_implicit_degree ["4","[4]"] == [Nothing,Just 4]
is_non_implicit_degree :: String -> Bool Source #
is_integer :: String -> Bool Source #
parse_modenam_entry :: [String] -> MODE Source #
join_long_lines :: [String] -> [String] Source #
Lines ending with @@ continue to next line.
parse_modenam :: [String] -> MODENAM Source #
IO
load_modenam :: IO MODENAM Source #
parse_modenam
of load_dist_file
of modenam.par
.
mn <- load_modenam let (n,x,m) = mn n == 2125 && x == 15 && length m == n