在Reason中的函数调用中传播语法

时间:2017-11-09 08:23:33

标签: reason

在Javascript中,您可以在函数调用中使用扩展语法,如下所示:

console.log(...[1,2,3]);

在Reason中是否有相同的内容?我尝试了以下方法:

let bound = (number, lower, upper) => {
  max(lower, min(upper, number));
};

let parameters = (1,0,20);

bound(...parameters) |> Js.log;

但这会产生未知的语法错误:

Try reason snippet

1 个答案:

答案 0 :(得分:1)

没有。 Reason是一种静态类型语言,列表是动态大小和同质的。它的使用非常有限,并且根本不清楚如何处理太少或太多的论点。如果你想传递一个列表,你应该接受一个列表并适当地处理它,如果需要的话,作为一个单独的函数。

你当然可以使用一个元组,它是固定大小和异构的,但我也没有看到用例,因为你可能只是直接调用函数。

对于JavaScript FFI,有bs.splice属性,它允许您使用数组将可变数量的参数应用于js函数。但它需要使用数组 literal 调用,而不仅仅是任何数组。