![]() |
1
8
一元反射本质上是描述分层单体或单体分层的语法。在Haskell中,描述也意味着构造单子。这是一个更高级别的系统,所以代码看起来像是功能性的,但是结果是monad组合——这意味着如果没有实际的monad(它们是非功能的),那么一天结束时就没有真正的/可运行的。菲林斯基这样做的初衷是试图给Scheme带来一种单子模拟,但更多的是为了探索单子的理论方面。 Filinski's paper at POPL 2010 -没有代码但有很多理论,当然还有他1994年的原始论文- Representing Monads . 加上一个有代码的: Monad Transformers and Modular Interpreters (1995年) Filinski's code 是在线的。我只列出一个步骤,看看另一个7和自述。也只是 a bit of F# code 据说是受到菲林斯基的启发 |
![]() |
2
3
我通读了谷歌的第一个热门话题,一些幻灯片: http://www.cs.ioc.ee/mpc-amast06/msfp/filinski-slides.pdf 从这个看来
Oleg Kiselyov也有 an article ,但我都没试着读。还有一份报纸 Jonathan Sobel (等)。第五题就是这个问题,所以我就不去管了。 |
![]() |
3
1
Monadic reflection 是一个概念 bridge call/cc style and Church style programming F# Computation expressions (=monad)是用自定义生成器类型创建的。 唐·赛姆有一个好的 blog post about this . 如果我编写代码来使用生成器并使用如下语法:
call/cc "call-with-current-continuation" 风格方案:
(方案式编程) F基于OCaml。
OCaml可用于教会类编程,其中组合函数用于构造任何其他函数(或程序):
Church numerals 是用纯函数表示数字的一种方法。
为了执行这些函数,最后一个函数将调用最后一个参数(x)为null的其他函数。
在F#值限制使得这很难实现。 Church numerals can be made with C# 4.0 dynamic keyword (内部使用.NET反射)。我认为在F中也有一些解决方法。 |
![]() |
Thomas · 使类型别名在F中不可互换# 3 年前 |
![]() |
sdgfsdh · 我该怎么说。使用异步转换函数进行收集? 7 年前 |
![]() |
Soldalma · 我可以实例化包含顶级副作用值的类吗? 7 年前 |
![]() |
matekus · F#-包含数字的字符串的自然排序 7 年前 |
![]() |
matekus · F#类型匹配-无法创建映射或匹配记录 7 年前 |
![]() |
Rob Lyndon · 未找到F#ProvidedTypes文件 7 年前 |
![]() |
red-swan · 如何将intro ML.Net演示翻译为F#? 7 年前 |
![]() |
jkone27 · F#-在编译时从字符串生成简单的空类型 7 年前 |