【发布时间】:2021-01-05 21:15:28
【问题描述】:
我只是想创建一个简单的函数,它接受一个列表并确保其中的数字按升序排列。
`ascending :: Ord t => [t] -> Bool
ascending [] = True
ascending (x:xs) = (tracker xs x)
tracker :: Ord t => [t] -> t -> Bool
tracker [] y = True
tracker (x:xs) y | if y <= x = True
| otherwise = False`
这是我到目前为止所拥有的,但我得到“变量不在范围内:升序 :: [Integer] -> t " 由于某种原因,我无法弄清楚如何解决此问题
【问题讨论】:
-
看起来您在某处调用
ascending而不导入它。此外,tracker只会检查第一个元素是否小于或等于第二个元素,而不检查其余元素是否按升序排列。 -
你的程序也有语法错误,
if不应该在守卫的情况下使用。 -
不要在 GHCi 中逐行输入代码。将其保存在一个文件中,并在 GHCi 中使用
:l FileName.hs加载整个文件。
标签: function haskell helper tracker