假设我有一个名为foo的过程,它返回一个::float,用于接受以下参数:
::float参数的过程。::float::float我将如何在代码的export部分为该函数编写一个module?到目前为止,我有这样的看法:
(module bar
(export (foo::float 'something ::float ::float)))这里应该用什么来代替'something?
发布于 2015-06-08 06:38:19
这个问题类似于a previous bigloo question。目前还没有一种优雅的方法来做到这一点。您应该使用::procedure作为第一个参数的类型。这不是戏剧性的损失,因为--在许多情况下--bigloo的类型推断和流分析会发现您试图用类型注释捕获的错误。
发布于 2015-06-06 12:42:14
没有实际测试,这是我的猜测。
使用fun-of-two-floats定义类型(例如,type )。
文档中的示例是:
(module foo
(extern
(type *string->double
(function double (string))
"double (*)(char *)")
(macro cv::*string->double "convert")))
(print (*string->double-call cv "3.14"))所以我猜这会奏效的:
(type fun-of-two-floats
(function float (float float)))
(module bar
(export (foo::float fun-of-two-floats ::float ::float)))文档在这里:http://www-sop.inria.fr/mimosa/fp/Bigloo/doc/bigloo-28.html#Defining-an-extern-type
https://stackoverflow.com/questions/30678229
复制相似问题