【发布时间】:2013-06-23 16:33:24
【问题描述】:
take :: Int -> [a] -> [a]
genericTake :: Integral i => i -> [a] -> [a]
我读到take的不方便类型是由于历史原因,更改它可能会导致某些代码中断。
但是我不能在任何地方都用genericTake 替换take 而不会破坏任何东西吗?有什么问题?
【问题讨论】:
-
我猜可能会出现类型派生基于
take类型的情况——genericTake会出现“无法派生”的情况。 -
请注意,除了在晦涩难懂的情况下(并且可能更实际相关)代码损坏之外,在很多情况下将
take替换为genericTake会导致性能下降(因为类型默认将现在导致在未指定:: Int时使用Integer)。
标签: haskell