【发布时间】:2015-04-22 09:36:06
【问题描述】:
例如:
intersectBy : (a -> a -> Bool) -> List a -> List a -> List a
intersectBy _ [] _ = []
intersectBy _ _ [] = []
intersectBy eq xs ys = [x | x <- xs, any (eq x) ys]
[] 有额外的模式,似乎它们在 Haskell Data.List 中使用,但那是一种什么样的优化?和这里的伊德里斯有什么不同?
我之所以问,是因为我听说“这会使推理变得更加困难”,并且说我的人没有时间充分解释它。
我怀疑我是否能理解它对功能的“减少证明”。
请有人从 Haskell 和 Idris 的立场向我解释这里的额外模式的政治,以便我能够理解并看到其中的区别。
【问题讨论】:
标签: haskell pattern-matching idris