fsharp 编译器是否将冗余函数组合减少为空操作?

Gre*_*reg 2 f# compiler-optimization

以下表达式是否会生成任何带有 fsharp 编译器的代码?

let xs = List.rev <| List.rev xs
Run Code Online (Sandbox Code Playgroud)

Phi*_*ter 5

不,它没有。您可以查看sharplab上的输出IL以验证它会发出什么。

您可以在此处阅读有关对 F# 编译器进行编码的各种优化。它使用不同的技术优化了几件事,其中一些比其他技术得到了更好的记录。