c - 在 Idris 中使用 C 函数

标签 c idris

Idris 可以将 .idr 编译为 C 代码(JS、NodeJS)。是否可以反向执行 - 将 C 代码编译为 Idris 格式?或者,也许,直接在 Idris 代码中使用 C 函数?

最佳答案

当然!看看foreign function interface (FFI) .根据您的编译目标(例如 C、JavaScript 等),您可以使用 native 函数,例如在 IO< 中调用 void *fileOpen(char *path, char *mode) 示例 单子(monad):

do_fopen : String -> String -> IO Ptr
do_fopen f m
   = foreign FFI_C "fileOpen" (String -> String -> IO Ptr) f m

关于c - 在 Idris 中使用 C 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52578013/

相关文章:

dependent-type - 如何在 Idris 中重写函数体,以便类型对应于函数签名并且整个事物都可以编译

string - 在Idris中将字符串转换为整数或自然数的最佳方法

pretty-print - 了解 Wadler 的 Prettier 打印机的性能特点

c - 使用 fread 读取文件不会按预期结束

c - 如何让多维数组更不容易导致精神错乱?

idris - 如何证明关于原始字符串的事情?

overloading - 为什么这些表达有不同程度的歧义?

c++ - TreeView控件和非递归

C 中的字符指针意外工作

c - 在 C 中为矩阵分配内存,为什么我之后不能访问矩阵?