f# - 什么是 "monadic reflection"?

标签 f#

什么是“一元反射”?

如何在 F# 程序中使用它?

术语“反射”的含义与.NET-反射相同吗?

最佳答案

单子(monad)反射本质上是一种描述分层单子(monad)或单子(monad)分层的语法。在 Haskell 中,描述也意味着构建单子(monad)。这是一个更高级别的系统,因此代码看起来像功能性的,但结果是 monad 组合 - 这意味着没有实际的 monad(非功能性)在一天结束时没有任何真实/可运行的东西。 Filinski 最初是为了尝试为 Scheme 带来一种 monad 仿真,但更多的是为了探索 monad 的理论方面。

更正评论 - F# 有一个名为 "Computation Expressions" 的 Monad 等价物

Filinski's paper at POPL 2010 - 没有代码,但有很多理论,当然还有他 1994 年的原始论文 - Representing Monads .加一个有一些代码的:Monad Transformers and Modular Interpreters (1995)

哦,对于喜欢代码的人 - Filinski's code在线。我将只列出一个 - 再上一步,看看另一个 7 和自述文件。也只是a bit of F# code声称受到菲林斯基的启发

关于f# - 什么是 "monadic reflection"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2310998/

相关文章:

.net - 如何在不重定向的情况下读取 Process.StandardOutput ? (F#)

f# - 奇怪的行为定义意味着 F# 中的运算符

generics - 为什么不能在类型扩展的约束中使用泛型类型参数?

c# - 从 F# Interactive 使用 RavenDb FilesStore 挂起

algorithm - 如何使用带最小值/最大值的画线算法? F#

c# - 如何确保 typeof 和强制转换运算符在不同的加载上下文而不是默认加载上下文上运行

asynchronous - 等待取消异步工作流

c# - 从 C# 传递函数作为参数调用 F# 函数

c# - F# 中的 ConfigureAwait(false)

F# 柯里化(Currying)函数的类型不匹配