ฉันกำลังพยายามทำสิ่งต่อไปนี้จากรายการที่เติมแบบไดนามิก:
val primitives = "x" | "y" | "z" // what I want
val primitives2 = List("x", "y", "z") // what I need to transform from
ฉันคิดว่าสิ่งนี้อาจใช้ได้ผล:
primitives2.reduce(_|_)
แต่อย่าไป จากนั้นฉันก็พบตัวอย่างนี้ซึ่งใช้งานได้:
primitives2.foldRight(failure("no matching delimiter"): Parser[Any])(_|_)
อย่างไรก็ตาม กรณีฐาน failure("no matching delimiter")
ทำให้เกิดความสับสน นั่นเป็นเพียงกรณี Nil ที่เทียบเท่ากับวัตถุ Parser หรือไม่