gpt4 book ai didi

Scalaz 和主要方法

转载 作者:行者123 更新时间:2023-12-01 09:53:58 24 4
gpt4 key购买 nike

我正在尝试通过我的玩具项目学习 Scalaz,我在 Haskell 中使用了 monad,现在我想学习如何在 Scala 中使用它们和 Scalaz。

最大的问题是,如何在 Scala 的 main 方法中使用 IO() Monad?

在 Haskell 中,main 函数是 IO() 类型,在 Scala 中是 () 类型。

目前我找到的解决方案是创建另一个 IO() 类型的函数 foo 并在主方法中调用 foo.unsafePerformIO()。但这让我感到畏缩。

有什么解决方案?

最佳答案

Scalaz 提供了一个 SafeApp trait这允许您用看起来更像 Haskell 的 main 的包装器替换 Scala 的副作用 main 方法:

import scalaz._, Scalaz._, effect.{ IO, SafeApp }

object MyMain extends SafeApp {
override def runl(args: List[String]): IO[Unit] = IO(println("hello world"))
}

现在 MyMain 可以像任何其他具有静态 main 的 JVM 类一样使用。

我个人并不怎么使用 SafeApp,但如果您想避免手动调用 unsafePerformIO,它就在那里。

关于Scalaz 和主要方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32494589/

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