가정하자 나는 다음과 같은 코드가 있습니다불완전한 패턴 일치를 필터로 사용 하시겠습니까?
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.
을 비교할 수없는 요소를 무시하는 것이 나의 의도이므로이 경고를 없앨 수 있습니까?
MatchFailureException을 발생시키지 않으면 서리스트 내포물로이 작업을 수행 할 수있는 방법이 있습니까? 예 : 그런 일 :
> [for Car(_, seats) in xs -> seats] |> List.sum;;
val it : int = 10
나는 그 줄이 다음과 같을 것이라고 생각한다 : [버스 (_, 좌석) xs -> 좌석] |> List.sum ;; 권리? ;) –
오, 알 겠어 !!! 2 대! 5 × 2 = 10! 주님, 도와주세요. –
가족 용 자동차와 스포츠카이므로 8 + 2 = 10입니다. – Laurent