Haskell 使用shuffleM进行列表洗牌

Haskell 使用shuffleM进行列表洗牌,haskell,Haskell,我试着写一个函数,它接受一个列表并给出它的排列。在ghci中,我可以这样做: >let xs=[1..10] >ys <- shuffleM xs >让xs=[1..10] >你能做什么 main :: IO () main = do let xs = [1..10] ys <- shuffleM xs print $ doSomething ys doSomething :: [Integer] -> Integer doSomethi

我试着写一个函数,它接受一个列表并给出它的排列。在ghci中,我可以这样做:

>let xs=[1..10]
>ys <- shuffleM xs
>让xs=[1..10]
>你能做什么

main :: IO ()
main = do
    let xs = [1..10]
    ys <- shuffleM xs
    print $ doSomething ys

doSomething :: [Integer] -> Integer
doSomething = sum
main::IO()
main=do
设xs=[1..10]
ys整数
doSomething=总和
比如说。我不确定shuffleM从哪里来,但是如果它来自库,那么你只需要在实现了MonadRandom的monad中使用它,MonadRandom包括
IO
。然后,您可以像处理任何其他列表一样处理无序列表