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 #?
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