讓我們考慮以下Point
記錄類型:模式匹配記錄類型
type Point = { x:int; y:int }
我想提出一個謂語,告訴我一個給定的點是否在有效的區域。
let insideBounds p =
let notInside c = c < 0 || c > 100
match p with
| {x=i; y=_} when notInside i -> false
| {x=_; y=j} when notInside j -> false
| _ -> true
這工作,但我不知道是否有實現其作爲insideBounds簽名
let insideBounds {x=i; y=j}
代替,仍利用模式匹配的相同結果的另一種方式?
然後可以用函數式樣式輕鬆地重寫:let insideRounds {x = i; y = j} = let inRange =( (| InRange | _ |)(0,100)>> Option.isSome); inRange i && inRange j' :-) – Daniel
@Tomas很酷。模式匹配語句的行爲類似於Maybe模式。 – gradbot