diff --git a/Proj2.hs b/Proj2.hs index 2e23371..a9d30b6 100644 --- a/Proj2.hs +++ b/Proj2.hs @@ -33,7 +33,29 @@ instance Show Pitch where show (Pitch note octave) = show note ++ show octave toPitch :: String -> Maybe Pitch -toPitch _ = Just (Pitch 'A' 1) +toPitch [note, octave] = Pitch <$> charToNote note <*> charToOctave octave + where + charToNote :: Char -> Maybe Note + charToNote c = + lookup + c + [ ('A', A), + ('B', B), + ('C', C), + ('D', D), + ('E', E), + ('F', F), + ('G', G) + ] + charToOctave :: Char -> Maybe Octave + charToOctave c = + lookup + c + [ ('1', One), + ('2', Two), + ('3', Three) + ] +toPitch _ = Nothing feedback :: [Pitch] -> [Pitch] -> (Int, Int, Int) feedback _ _ = (0, 0, 0)