Я смотрю информацию здесь: Hackage
Я хочу, чтобы в моей программе происходили разные вещи, в зависимости от того, какая клавиша со стрелкой была нажата. Используя модуль NCurses, я могу зарегистрировать событие с помощью функции getEvent. Но я не могу заставить свои операторы if работать с сохраненным событием. Это мой код:
main = runCurses $ do
w <- defaultWindow
e <- getEvent w (Just 300)
let x = setX e
setX e
| e == KeyLeftArrow = -1
| e == KeyRightArrow = 1
| otherwise = 0
Это дает Couldn't match expected type ‘Key’ with actual type ‘Maybe Event’
Так что я изменяю на e == Just Key...Arrow
, а затем получаю
Couldn't match type ‘Event’ with ‘Key’
Expected type: Maybe Key
Actual type: Maybe Event
Полагаю, это потому, что e
- это Событие, и я веду себя так, как будто это Ключ, но даже после попытки Key e == Just Key...Arrow
это не работает. Как я могу превратить это событие в ключ? Или каким-то другим способом просто заставить мою условную на e
работать?