gpt4 book ai didi

f# - F# 可以为管理不确定性提供什么?

转载 作者:行者123 更新时间:2023-12-01 09:59:10 26 4
gpt4 key购买 nike

在与现实世界对话的应用程序中,使用非确定性函数是不可避免的。明确区分确定性和非确定性很重要。

Haskell 有 IO monad,它通过查看我们知道它之外的一切都是纯的来设置不纯的上下文。这很好,如果你问我,当涉及到单元测试时,人们可以告诉他们代码的哪一部分最终是可测试的,哪一部分不是。

我找不到任何允许在 F# 中将两者分开的东西。这是否意味着根本没有办法做到这一点?

最佳答案

F# 类型系统没有捕捉到确定性和非确定性函数之间的区别,但是需要处理非确定性的典型 F# 系统会使用一些结构(或“设计模式”)来明确区分两者.

  • 如果您的核心模型是一些不与世界交互的计算(您只需要收集输入并运行计算),那么您可以将大部分代码编写为对不可变数据结构的函数转换,然后从一些“主”I/O 循环中调用它们。

  • 如果您正在编写一些高度交互或 react 性的应用程序,那么您可以使用 F# 代理(这里是 an introductory article )并构建您的应用程序,以便将非确定性安全地包含在各个代理中(参见 more about agent-based architectures )

关于f# - F# 可以为管理不确定性提供什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19103393/

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