【问题标题】:Making printfn/IO pure in F#在 F# 中制作纯 printfn/IO
【发布时间】:2011-09-27 00:19:04
【问题描述】:

网上似乎没有太多关于确保函数在 F# 中保持纯正的内容。

举个例子,有没有什么方法可以让 printfn/IO 在 F# 中变成纯的?

【问题讨论】:

    标签: .net f# functional-programming side-effects


    【解决方案1】:

    打印到控制台是根据定义改变状态(控制台状态)并且确实有副作用(例如删除一些控制台缓冲区)。

    如果您使用某种 CodeContracts 或类似的东西,您应该考虑在其他地方写出函数结果,或使用断言(Contract.AssumeContract.Assert(用于静态断言))以便更轻松地确认您代码有效。

    【讨论】:

      【解决方案2】:

      您可以在 Google 上搜索 Haskell 的 IO monad 的 F# 实现。 Here 是一个很好的例子。

      【讨论】:

      • 不敢相信我错过了!谢谢:D
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-15
      • 1970-01-01
      • 1970-01-01
      • 2013-02-14
      • 1970-01-01
      • 2019-10-03
      相关资源
      最近更新 更多