Scala: альтернативный синтаксис списка (с квадратными скобками, если возможно)

Есть ли в Scala альтернативный синтаксис «Список»? Можно ли определить один дополнительный класс / тип / оператор * под названием «[» и «]»?

Я знаю, что «квадратные скобки» используются для обозначения типа, но они идеально подходят для повторяющейся задачи объявления списков.

A ';' или '?' также было бы хорошо в качестве последнего ресурса.

Спасибо

obs .: после долгих поисков единственной альтернативой, которую я нашел, было использование 'cons':

val list = 1 :: 2 :: 3 :: Nil

, но это никак не сокращает набор клавиш.

  • Я все еще изучаю эти вещи в Scala

EDIT: Чтобы уточнить: в моем случае производительность не является приоритетом. И да, сдвиг не приветствуется. :П Скрытая мотивация: мне нравится стиль Haskell, но я не могу использовать его напрямую с Java.

РЕДАКТИРОВАТЬ 2: Окончательное решение, основанное на обоих решениях Рекса Керра

, реализующих типы объектов:

package a
object Types {
  type \[z] = List[z]
  implicit def make_lists[A](z: A) = new ListMaker(z)

  class ListMaker[A](a0: A) {
    private[this] val buffer = List.newBuilder[A]
    buffer += a0
    def \(z: A) = {
      buffer += z;
      this
    }
    def \\ = buffer.result
  }
}

с использованием типов объектов:

package a
import a.Types._

object Whatever {
  def listInListOut (l: \[Int]) = {
    1\2\\
  }
}
6
задан 29 July 2011 в 09:52
поделиться