F# 如何使用WebSharper翻译器?
有人能解释一下如何与F#一起使用WebShapper翻译器吗? 它是将F#代码翻译成JS本身还是使用F#编译器F# 如何使用WebSharper翻译器?,f#,websharper,F#,Websharper,有人能解释一下如何与F#一起使用WebShapper翻译器吗? 它是将F#代码翻译成JS本身还是使用F#编译器 在第二种情况下,当在源代码中找到[]属性时,F#编译器正在做什么?编译器是否在任何情况下生成函数,并在运行时将JS构造为编译字节码的反射或其他内容?我开发了WebSharper。好问题 编译大致如下所示: a.dll: a.fs b.fs c.fs fsc ... a.dll.js: a.dll WebSharper.exe .. 当使用[]对函数进行注释时,这是[
在第二种情况下,当在源代码中找到[]属性时,F#编译器正在做什么?编译器是否在任何情况下生成函数,并在运行时将JS构造为编译字节码的反射或其他内容?我开发了WebSharper。好问题 编译大致如下所示:
a.dll: a.fs b.fs c.fs
fsc ...
a.dll.js: a.dll
WebSharper.exe ..
当使用[]
对函数进行注释时,这是[]
的别名,F#编译器不仅将这些函数编译为.NET IL,还将其语法表示形式存储在DLL元数据中。此表示具有类型quotes.Expr
,可以通过反射恢复。查看带有反射定义的Quotes.DerivedPatterns.Methods
因此,WebSharper是一个源到源转换器,它非常直接(例如,保留lambdas)。在WebSharper2.0中,我们有一种类似于中间模式的语言,但这只是为了帮助优化生成的代码