在Haskell Turtle中,sort的类型为(Functor io, MonadIO io, Ord a) => Shell a -> io [a]
,它接受Shell单子形式的流,将其排序到列表中,然后将其 Package 在MonadIO
???中。
我的初学者认为MonadIO
应该只在与外部世界交互时使用,而sort
不需要这样做。
我本来希望sort
是(Ord a) => Shell a -> Shell a
,所以它很好地融入了流。
这是软件包作者的疏忽,还是我不明白应该如何使用sort
?
1条答案
按热度按时间bvn4nwqk1#
MonadIO io => io [a]
比Shell a
好,因为Shell
是MonadIO
示例,而select
将列表提升到Shell
。因此,如果需要,可以编写自己的更具体的sort
,它具有您喜欢的类型,用turtle提供的sort
实现: