Domanda

Sono impegnato ad affrontare il progetto anemico di F # fornito da MS in VS 2010 Beta 2, e mi sono imbattuto in qualcosa che ha bisogno di qualche spiegazione:

let rec SumList xs =
    match xs with
    | []    -> 0
    | y::ys -> y + SumList ys

Suppongo che la corrispondenza sia qualcosa di simile a un interruttore in altre lingue, in cui un elenco vuoto genera un valore di ritorno 0, ma il secondo caso mi affascina. Questo dice al "runtime | interprete" di valutare l'argomento match come y cons ys , o piuttosto come 'se l'argomento ha la forma y cons ys ', ricorre con yy?

È stato utile?

Soluzione

Puoi trovare la discussione qui

Spiegazione della corrispondenza del modello vs switch

utile. Penso che sia difficile riassumere come funziona il pattern matching, ma è sia un costrutto di controllo-flusso (a la switch) che un costrutto vincolante.

Altri suggerimenti

Un pattern matching non è come un'istruzione switch : switch opera sul valore di un'espressione, mentre match può anche operare sul struttura dell'espressione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top