Ali*_*ite 5 haskell new-operator
我是 Haskell 新手,无法找出我的代码出了什么问题。我不断收到变量超出范围的错误。
这是我使用加载到 GHCi 中的代码:load
validLength :: String -> Bool
validLength xs | length xs == 26 = True
| otherwise = False
Run Code Online (Sandbox Code Playgroud)
然后我输入validLength aawhich 应该返回 false 但我收到错误。
*Main> validLength aa
<interactive>:1:13: error: Variable not in scope: aa :: String
Run Code Online (Sandbox Code Playgroud)
标识符不是字符串。(这对于 Haskell 来说绝不是特殊的,在大多数其他语言中都是一样的。)因此,当您给出aa参数时,GHC 会将其解释为某个变量的名称。但是,好吧,没有具有该名称的变量,至少不在范围内,因此会出现错误。
如果您想实际传递由两个字符组成的字符串a,那么您应该使用字符串文字。字符串文字只是一个用双引号括起来的字符串(同样,这与许多其他编程语言中的方式相同)。
*Main> validLength "aa"
False
Run Code Online (Sandbox Code Playgroud)