首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bigloo:类型暗示函数参数

Bigloo:类型暗示函数参数
EN

Stack Overflow用户
提问于 2015-06-06 02:03:56
回答 2查看 87关注 0票数 2

假设我有一个名为foo的过程,它返回一个::float,用于接受以下参数:

  1. 采用两个::float参数的过程。
  2. 一个::float
  3. 另一个::float

我将如何在代码的export部分为该函数编写一个module?到目前为止,我有这样的看法:

代码语言:javascript
复制
(module bar
    (export (foo::float 'something ::float ::float)))

这里应该用什么来代替'something

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-08 06:38:19

这个问题类似于a previous bigloo question。目前还没有一种优雅的方法来做到这一点。您应该使用::procedure作为第一个参数的类型。这不是戏剧性的损失,因为--在许多情况下--bigloo的类型推断和流分析会发现您试图用类型注释捕获的错误。

票数 2
EN

Stack Overflow用户

发布于 2015-06-06 12:42:14

没有实际测试,这是我的猜测。

使用fun-of-two-floats定义类型(例如,type )。

文档中的示例是:

代码语言:javascript
复制
(module foo 
   (extern
    (type *string->double
          (function double (string)) 
                    "double (*)(char *)")
    (macro cv::*string->double "convert")))

(print (*string->double-call cv "3.14"))

所以我猜这会奏效的:

代码语言:javascript
复制
(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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30678229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档