【问题标题】:Taking a value from the Gen monad to the IO monad从 Gen monad 取一个值到 IO monad
【发布时间】:2014-12-10 22:44:51
【问题描述】:

我正在生成一个扫雷板,并希望根据第一次点击(实际上不是点击,只是在 cmd 中写入代表点击的字符串)的位置生成板。这是一个问题,因为我必须混合 Gen 和 IO monad。有没有办法将 Gen a 转换为 IO a?

我找到了this 函数。这正是我想要的。但无法导入。

【问题讨论】:

  • 我意识到我可以使用 sample' :: Gen a -> IO [a] 并获取第一个结果。但这有点丑陋。
  • @Sibi 它是来自 QuickCheck 模块的 monad,来源:link
  • 可以导入。只需import Test.QuickCheck.Gen
  • @SiXoS 我刚刚从我的 QuickCheck 2.7.6 将它导入到我的 ghci 中。
  • @SiXoS:在 FP Complete Hoogle 的第一页! fpcomplete.com/hoogle?q=generate

标签: haskell monads quickcheck


【解决方案1】:

我意识到使用 Gen 是个坏主意,现在改用 StdGen

这不仅在我的情况下更实用,而且产生更好的随机性

【讨论】:

    猜你喜欢
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-15
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多