【发布时间】:2011-04-21 16:37:05
【问题描述】:
我正在尝试编写一个函数,它接收一个列表,如果它按排序顺序返回 true,如果不是,则返回 false:
到目前为止,我拥有的是:
myordered [] = True
myordered [x] = True
myordered list1
| (head list1) <= (head (tail list1)) = myordered(tail list1)
| otherwise = False
根据我们的分配,所有的头尾操作都应该写成“x:xs”类型的语法。
我对有警卫的部分的翻译是:
myordered y:x:xs
| (y) <= (x) = myordered(xs)
| otherwise = False
基本上这个问题归结为: "x:xs" 类型语法中的 (head (tail list1)) 怎么表达?
干杯, -紫谷
【问题讨论】:
标签: list haskell recursion pattern-matching