簡體   English   中英

在Scala的解析器組合器中返回“ |”的類型

[英]Return type of “|” in Scala's parser combinators

我正在閱讀Bernie Pope關於“ Scala中的Parser組合器”的幻燈片。 他引用了“另類”的組合子的方法簽名類型|

def | [U >: T](q: => Parser[U]): Parser[U]

並問:“作業:為什么|卻沒有這種類型?”

def | [U](q: => Parser[U]): Parser[Either[T,U]]
case class Stooge(name: String)
val moe: Parser[String] = "Moe"
val larry: Parser[String] = "Larry"
val curly: Parser[String] = "Curly"
val shemp: Parser[String] = "Shemp"

val stooge: Parser[Stooge] = (moe | larry | curly | shemp) ^^ { s => Stooge(s) }

現在,想象一下如果使用{ s => Stooge(s) }則必須編寫代替{ s => Stooge(s) } s: Either[Either[Either[String,String],String],String]而不是s: String

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM