我正在Haskell的一个学生项目中工作,而getLine的行为存在问题。这是代码(简体):
main :: IO()
main = do
str <- getLine
putStrLn str
Run Code Online (Sandbox Code Playgroud)
我想做的是,当用户按下Ctrl + D时,能够退出With(ExitFailure 84)。getLine只是打印一个错误并退出程序(并返回1)
deBruijn: <stdin>: hGetLine: end of file
Run Code Online (Sandbox Code Playgroud)
如何改变这种行为?我只想将退出值更改为84。
我正在尝试解析格式的字符串:
(x,y) (r,g,b)
Run Code Online (Sandbox Code Playgroud)
我的文件在每一行上都包含这种字符串。我已经提取了线条,现在我想提取其值,但找不到满意的东西。我想做类似的事情:
case str of
['(', x, ',', y, ')', ' ', '(', r, ',', g, ',', b, ')'] -> The rest
Run Code Online (Sandbox Code Playgroud)
我知道它不起作用,我是Haskell的新手,所以我一直遇到我不明白的错误。我该怎么做?
编辑:我之前已经创建了这个,但是一旦创建了变量,我不知道如何真正使用它:
data Points = Point Coords Colors
data Colors = Color Float Float Float
data Coords = Coord Int Int
Run Code Online (Sandbox Code Playgroud)
数字不限于一位,r,g和b的范围是0到255。