Как вы создаете литералы массива с помощью HJScript или действительно HJavaScript? - PullRequest
6 голосов
/ 07 мая 2011

В 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

1 Ответ

2 голосов
/ 08 мая 2011

Этот вопрос - первый, что я услышал о HJscript. Кратко просматривая документы, я не вижу способа сделать простой массив буквальным, как [1,2,3]. Но я вижу способ вызова функций и отмечаю, что [1,2,3] = Array(1,2,3). На самом деле, держу пари, что переводчики относятся к первым как к сахару для последних. Поэтому, если вы можете вызывать функции, вы можете создавать литералы.

...