首页 > 解决方案 > 在 Idris 中使用 C 函数

问题描述

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

标签: cidris

解决方案


当然!看看外部函数接口(FFI)。根据您的编译目标(fe C、JavaScript 等),您可以使用本机函数,例如monadvoid *fileOpen(char *path, char *mode)内部的示例调用:IO

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

推荐阅读