我如何强制 OCaml 内联一个函数?

How do I force OCaml to inline a function?

是否可以告诉 OCaml 编译器内联一个函数,而不是希望它的优化过程会自己这样做?

你们都可以添加一个属性来始终内联一个函数

let f x = x [@@inline always]
(* which is equivalent to *)
let f x = x [@@inline]

或强制特定调用与另一个属性内联

let a = (f[@inlined]) 1

如果你想检查 flambda 做出的内联决定,你可以使用 inlining-report 标志。