8
votes

Schéma Cond en langage Scala

Scala a-t-il équivalent à Cond de Scheme?


0 commentaires

4 Réponses :


2
votes

Je suppose que vous recherchez correspondez (ou simplement si / else si / else ).


0 commentaires

2
votes
case _ => println("what")

0 commentaires

2
votes

Bien sûr, ni correspondent code> ni si code> fait exactement la même chose que ond code>. Une possibilité est de faire comme ceci:

val clauses = Seq(
  ({()=>false}, {()=>println("foo")}),
  ({()=>true}, {()=>println("bar")})
)
Cond(clauses)

def checkYear(year: Int) = {
  Cond(Seq(
    ({()=>year % 400 == 0}, {()=>42}),
    ({()=>true}, {()=>{c:Char => (c.toString * 3)}})
  ))
}


0 commentaires

0
votes

La traduction la plus simple consiste à utiliser des gardes de modèle, bien qu'elle nécessite un peu de chaudron. Les gardes de modèle ne fonctionnent que dans un cas modèle motif et Case ne fonctionne que dans un (code> (code> (sauf si nous écrivons un partialfunction ).

Nous pouvons satisfaire ces conditions par Match une valeur d'unité contre un cas S: xxx < / p>


0 commentaires