我只看到一个示例,该示例正在检查列表是否为后代
nondec :: Ord a => [a] -> Bool
nondec xs = and (map leq (zip xs (tail xs)))
where leq (x, y) = x <= y
我想知道我可以在where语法下定义多个函数吗。
例如,如果map函数未定义,我可以这样定义吗
where leq (x, y) = x <= y
map(...)
答案 0 :(得分:3)
我可以这样定义吗
为什么不尝试呢?因为是的,您可以完全像这样进行操作。 leq
和map
只需从同一列开始,并在与where
所在的行开始的列的右边(不一定在where
本身的右边) 。
我认为Wikibook explains the rules for indentation很好。
答案 1 :(得分:2)
像往常一样缩进:
nondec :: Ord a => [a] -> String
nondec as = map leq as where
leq = id
map _ _ = "Hi!"