haskell 如何使用sort?

odopli94  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(174)

在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

bvn4nwqk

bvn4nwqk1#

MonadIO io => io [a]Shell a好,因为ShellMonadIO示例,而select将列表提升到Shell。因此,如果需要,可以编写自己的更具体的sort,它具有您喜欢的类型,用turtle提供的sort实现:

sortStream :: Ord a => Shell a -> Shell a
sortStream = sort >=> select

相关问题