В 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