Function Bigloo:暗示函数参数的类型
假设我有一个名为Function Bigloo:暗示函数参数的类型,function,scheme,type-hinting,bigloo,Function,Scheme,Type Hinting,Bigloo,假设我有一个名为foo的过程,该过程返回一个::float,用于接受以下参数: 包含两个:float参数的过程 A::float 另一个::float 如何在代码的模块部分为该函数编写导出?到目前为止,我有: (module bar (export (foo::float 'something ::float ::float))) 什么东西应该被这里取代呢?我猜,没有在这里进行实际测试 使用type定义一个类型,比如说,fun of two float 文档中的示例是: (module
foo
的过程,该过程返回一个::float
,用于接受以下参数:
:float
参数的过程::float
::float
模块
部分为该函数编写导出
?到目前为止,我有:
(module bar
(export (foo::float 'something ::float ::float)))
什么东西应该被这里取代呢?我猜,没有在这里进行实际测试 使用
type
定义一个类型,比如说,fun of two float
文档中的示例是:
(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)))
文档在这里:这个问题类似于。目前还没有优雅的方式来做到这一点。您应该使用::过程作为第一个参数的类型。这并不是很大的损失,因为在很多情况下,bigloo的类型推断和流分析会发现您试图通过类型注释捕获的错误。请注意,类型定义用于外部类型(即C,而不是Scheme)。好的。我的回答应该被忽略。