Haskell “collections” language design

前端 未结 5 1885
耶瑟儿~
耶瑟儿~ 2021-02-07 03:21

Why is the Haskell implementation so focused on linked lists?

For example, I know Data.Sequence is more efficient with most of the list operations (except for the

5条回答
  •  一生所求
    2021-02-07 03:57

    I remember reading somewhere that map is for lists by default since newcomers to Haskell would be put off if they made a mistake and saw a complex error about "Functors", which they have no idea about. Therefore, they have both map and fmap instead of just map.

    EDIT: That "somewhere" is the Monad Reader Issue 13, page 20, footnote 3:

    3You might ask why we need a separate map function. Why not just do away with the current list-only map function, and rename fmap to map instead? Well, that’s a good question. The usual argument is that someone just learning Haskell, when using map incorrectly, would much rather see an error about lists than about Functors.

    For (:), the (<|) function seems to be a replacement. I have no idea about [].

提交回复
热议问题