मान लीजिए मैं निम्नलिखित कोड है:फिल्टर के रूप में अपूर्ण पैटर्न मिलान का उपयोग कर?
type Vehicle =
| Car of string * int
| Bike of string
let xs = [ Car("family", 8); Bike("racing"); Car("sports", 2); Bike("chopper") ]
मैं जैसे पाश के लिए एक अनिवार्य में अधूरा पैटर्न मिलान का उपयोग कर सूची के ऊपर फ़िल्टर कर सकते हैं:
> for Car(kind, _) in xs do
> printfn "found %s" kind;;
found family
found sports
val it : unit =()
लेकिन यह एक कारण होगा: warning FS0025: Incomplete pattern matches on this expression. For example, the value 'Bike (_)' may indicate a case not covered by the pattern(s). Unmatched elements will be ignored.
चूंकि बेजोड़ तत्वों की अनदेखी करना मेरा इरादा है, क्या इस चेतावनी से छुटकारा पाने की संभावना है?
और क्या इस काम को सूची-समझ के साथ मैचफेलर अपवाद के बिना बनाने का कोई तरीका है? जैसे ऐसा ही कुछ:
> [for Car(_, seats) in xs -> seats] |> List.sum;;
val it : int = 10
मुझे लगता है कि लाइन होने का अनुमान था: [बस (_, सीटें) में xs -> सीटें] |> List.sum ;; सही? ;) –
ओह मुझे मिल गया !!! 2 कारें! 5 एक्स 2 = 10! प्रभु मेरी मदद करें। –
यह एक पारिवारिक कार और एक स्पोर्ट कार है, इसलिए 8 + 2 = 10. – Laurent