c - 在 Idris 中使用 C 函数
问题描述
Idris 可以将 .idr 编译为 C 代码(JS、NodeJS)。是否可以反向执行 - 将 C 代码编译为 Idris 格式?或者,也许,直接在 Idris 代码中使用 C 函数?
解决方案
当然!看看外部函数接口(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
推荐阅读
- vega-lite - 在 vega-lite 中实现自定义点击处理程序的正确方法是什么
- ubuntu - 在 Caddy 上为 RocketChat 启用自签名 HTTPS
- openshift - 在集群外公开 TCP 端口
- python - 创建共享现有会话的内存和变量的新会话
- sql-server - 我可以计算表中每个 id 的前 15 个值的平均值吗?
- scala - Scala Dataframe 获取特定行的最大值
- python - 控制 datetime.isocalendar()
- opencv - 使用 Opencv 将 JPG 转换为 TIFF
- json - Logstash:展平嵌套 JSON,组合数组内的字段
- python - 使用 Python IS NOT NULL 的 SQLite 查询无效