Sam*_*ett 5 haskell functional-programming
我不知道如何解释这个问题所以我只是举个例子:
-- Create a list of ints if the string contains no numbers
row :: String -> [Maybe Int]
row (isAlpha row) = [ Just $ ord c | c <- row ]
row _ = [Nothing]
Run Code Online (Sandbox Code Playgroud)
当我尝试在GHCi中加载带有此模块的模块时,我得到:
Parse error in pattern: isAlpha
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?或者我必须在if..else中完成所有操作?
Ninja Edit:显然,这不是一个真实的例子.我试图通过一个简单的例子来推断我所追求的行为,但事后看来这显然没有意义,因为isAlpha会返回一个Bool,而不是一个字符串所以它将是错误的参数而isAlpha无论如何都在Char not String上工作.但我只是想描绘我正在寻找的概念,所以我希望能够实现.
小智 8
您正在使用isAlpha模式匹配(和仅模式匹配)的地方.请使用警卫:
row a | isAlpha a = someFunction
| otherwise = someOtherFunction
Run Code Online (Sandbox Code Playgroud)