When WebSharper compiles F# to JavaScript it preserves
namespaces, module and class nesting to make it easy to navigate
the compiled code from JavaScript shell. Roughly speaking,
A.B.C.D.E
identifier in F# can be found by typing
A.B.C.D.E
in JavaScript.
This poses a challenge: as you can imagine, emitting long
qualified identifiers everywhere is not a good idea for compact
code generation. To save space WebSharper 2.4 does class/module
interning. The basic idea is to say
L=Microsoft.FSharp.Core.ListModule
once and then say
L.ofArray
at every use site.
An example of this in action can be seen below:
No comments:
Post a Comment