Idris 可以内联用作参数的函数吗?

Can Idris inline functions that are used as arguments?

在 C++ 中,如果您要编写自己的带有比较谓词参数的通用 sort 函数模板,那么编译器将能够内联该谓词。

C 中不是这种情况:qsort 被编译一次,它的比较谓词参数从不被内联(也许 compiler/linker 最近改进了,所以请纠正我如果我的信息已过时)

这是 C++ 泛型编程的福音(当然不仅仅是 sort 函数):您可以获得相同的性能,为此在 C 中,您将不得不放弃泛型(或使用宏)。

我的问题是:Idris 可以做 C++ 在这里做的事情吗?它可以内联用作参数的函数吗?

Idris 确实支持通过注释机制对高阶函数进行部分求值。通过标记您希望在编译时传递的参数 [static],您可以得到专门化的结果程序。

比照。 the manual了解更多详情。