2014-12-29 40 views
5

這種類型可能是爲什麼Haskell基礎庫中沒有「非空列表」類型?

data NonEmptyList a = NEL a [a] 

功能headtail,和其他人將成爲新創建的Listable型類的方法。某些函數已經可以適應現有的類型類(maps/fold/traversals/monads)。

爲什麼這樣的類型不是Haskell標準庫的一部分?

+0

你如何創建該類型的實例? – Gabe

+5

您可以在['semigroups'](http://hackage.haskell.org/package/semigroups-0.16.0.1/docs/Data-List-NonEmpty.html)包中找到非空列表。 – gallais

回答

9

包的定義這種類型本身,而非空列表

Haskell的Wiki有一個整體page關於非空列表。

你的問題:爲什麼是非空列表不在基礎包中是比較難回答的。但是這個類型是基類(Foldable,Zip)中許多有用類的實例,所以使用它們的機制已經存在,並且只需要少量實例定義即可使用它。

+0

你能否提供一個例子並展示如何使用NonEmpty? – 4xx