gpt4 book ai didi

haskell - 如何在纯函数中选择随机列表元素?

转载 作者:行者123 更新时间:2023-12-02 03:40:57 25 4
gpt4 key购买 nike

我想创建一个 Haskell 函数,可以从给定列表中挑选一个随机数。我的类型签名是:

randomPick :: [a] -> a 

我应该做什么?

最佳答案

Haskell 中“纯”函数的部分定义是它是 referentially transparent ,即与评估结果可以互换。这意味着每次评估的结果必须相同。因此,恐怕您想要的功能是不可能的。要在 Haskell 中生成随机数,函数需要执行以下两件事之一:

获取并返回伪随机数生成器,例如:

randomPick :: RNG -> [a] -> (a, RNG)

或者使用IO从“外部世界”访问随机性:

randomPick :: [a] -> IO a

两种样式均由 the module System.Random 提供。另外,在前一种情况下,可以使用 State monad 或 special-purpose Random monad 来抽象传递 PRNG。 .

关于haskell - 如何在纯函数中选择随机列表元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2926267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com