Haskell 如何比较字符和转义终端转义序列

Haskell 如何比较字符和转义终端转义序列,haskell,term,Haskell,Term,如果我有这样的东西: main :: IO () main = do hSetBuffering stdin NoBuffering c <- getChar main::IO() main=do hSetBuffering标准不缓冲 c您可以使用terminfo数据库查找预期序列 请参阅模块 例如: Prelude System.Console.

如果我有这样的东西:

main :: IO ()                    
main = do                        
    hSetBuffering stdin NoBuffering
    c <- getChar                   
main::IO()
main=do
hSetBuffering标准不缓冲

c您可以使用terminfo数据库查找预期序列

请参阅模块

例如:

Prelude System.Console.Terminfo> t <- setupTermFromEnv 
Prelude System.Console.Terminfo> getCapability t keyLeft
Just "\ESCOD"

您可能更喜欢使用一个更完整的库来与终端进行交互,比如。

嗯,我对“^L”语法从来都不陌生。这句话的意思出人意料的安静!
Prelude> getChar -- pressing control L
'\f'
Prelude> '\f' == '\^L'
True