Domanda

Voglio fare qualcosa di simile (sintassi Nemerle)

def something =
match(STT)
    | 1 with st= "Summ"
    | 2 with st= "AVG" =>
        $"$st : $(summbycol(counter,STT))"

su F # così è reale con F #?

È stato utile?

Soluzione

Se ho capito bene, si desidera assegnare un valore a una variabile come parte del modello. Non v'è alcun supporto diretto per questo in F #, ma è possibile definire un modello attivo parametrizzata che lo fa:

let (|Let|) v e = (v, e)

match stt with 
| Let "Summ" (st, 1) 
| Let "AVG" (st, 2) -> srintf "%s ..." st

La stringa dopo Let è un parametro del modello (e viene passato come valore v). Il modello quindi restituisce una tupla contenente il valore limite e il valore originale (in modo da poter corrispondere al valore originale nel secondo parametro della tupla.

Altri suggerimenti

Non v'è alcun supporto diretto per questo, ma è possibile simulare l'effetto in questo modo, così:

let 1, st, _ | 2, _, st = stt, "Summ", "AVG"
sprintf "%s %a" st summbycol (counter, stt)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top