Итак, я получил что-то вроде этого:
abstract class Term
case class App(f:Term,x:Term) extends Term
case class Var(s:String) extends Term
case class Amb(a:Term, b:Term) extends Term //ambiguity
И Term может выглядеть так:
App(Var(f),Amb(Var(x),Amb(Var(y),Var(z))))
Так что мне нужны все варианты, указанные классом Amb. Это используется для представления неоднозначного леса синтаксического анализа, и я хочу проверить каждый возможный вариант и выбрать правильный. В этом примере мне понадобится:
App(Var(f),Var(x))
App(Var(f),Var(y))
App(Var(f),Var(z))
Как лучше всего создать эти варианты в scala? Эффективность была бы хорошей, но на самом деле это не требование. Если возможно, я предпочитаю воздерживаться от использования отражения.
Amb
после выполнения этой операции). Вот быстрый набросок того, как это может выглядеть. - person Travis Brown   schedule 26.09.2013