如何使用HJScript或HJavaScript创建数组文字?

Chr*_*one 6 javascript dsl haskell package

在HJavaScript中有Array类型,但我看不到构建一个文字的方法,例如,将其转换为JS [1,2,3].new Array()如果我不需要,我不想创建一个然后将项目推入其中.

理想情况下,我正在追求类似的功能array :: [t] -> Array t.

我可以JConst用来实现array,但它似乎是一个应该是直截了当的东西.我也可以使用上面的create-and-push方法来实现array,但这也不是很好.

这是array推动; 不太好.

array :: [Exp a] -> JS (JArray a)
array xs = do
  arr <- new Array ()
  mapM_ (`push` arr) xs
  return arr
Run Code Online (Sandbox Code Playgroud)

luq*_*qui 2

这个问题是我第一次听说HJscript。简要地查看文档,我看不到任何方法来制作像[1,2,3]. 但是,我确实看到了一种调用函数的方法,并注意到[1,2,3] = Array(1,2,3). 事实上,我敢打赌解释者将前者视为后者的糖。因此,如果您可以调用函数,您就可以构造文字。

  • 看来 `Array` 确实等同于 `new Array`,因为它无论如何都会创建一个新对象(参见 ECMAScript 规范第 121 页,第 15.4.1 节)。 (2认同)