相关疑难解决方法(0)

F#报价的另一个限制是什么?

今天早些时候我遇到了F#报价的限制,并在这里问了一个问题:F#报价:变量可能会逃避范围

现在,在将MetaOcaml中出现的http://www.cs.rice.edu/~taha/publications/journal/dspg04a.pdf中的示例转换为F#时,我可能遇到了另一个限制.

这次我有这个MetaOcaml片段:

let rec peval2 p env fenv=
    match p with
    Program ([],e) -> eval2 e env fenv
    | Program (Declaration (s1,s2,e1)::tl,e) ->
         .<let rec f x = .~(eval2 e1 (ext env s2 .<x>.)
                                     (ext fenv s1 .<f>.))
           in .~(peval2 (Program(tl,e)) env (ext fenv s1 .<f>.))>.
Run Code Online (Sandbox Code Playgroud)

我把它转换成了

let rec peval2 p env fenv =
    match p with
    | Program ([], e) -> eval2 e env fenv
    | Program (Declaration (s1, s2, e1) :: tl, e) -> …
Run Code Online (Sandbox Code Playgroud)

f# metaprogramming multi-stage-programming metaocaml

8
推荐指数
1
解决办法
532
查看次数

什么是F#报价?

F#中的"引用"是什么,它们用于什么?

f# quotations

6
推荐指数
2
解决办法
430
查看次数