可以认为它是纯函数吗?

时间:2019-02-24 12:28:10

标签: scala referential-transparency

我目前正在设计功能性应用程序,并坚持引用透明性的概念。我具有以下特征

trait RemoteStringStorage[F[_]]{
    def getAndDeleteOnSuccess(f: String => F[Unit]): F[Unit]
}

getAndDeleteOnSuccess应该要做的是从某个远程存储中提取String并将f: String => F[Unit](纯)应用于它。如果成功,String应该从存储中删除。我无法将方法拆分为多种方法,因为我使用了可以自动执行该操作的特定于存储的API。

问题是这种功能是否纯净。还是有任何理由将特征定义为

trait RemoteStringStorage[F[_]]{
    def getAndDeleteOnSuccess(f: F[String => F[Unit]]): F[Unit]
}

0 个答案:

没有答案