F#初學者在這裏。縮短F#元組匹配
我想匹配一個元組與幾個例子,並返回匹配條件的具體值。這是它的外觀:
match inf, sup with
| nan , _
| _ , nan
-> Interval(nan,nan)
| _ , _ when inf = -infinity && sup = -infinity -> Interval(nan,nan)
| _ , _ when inf = infinity && sup = infinity -> Interval(nan,nan)
| _ , _ when inf > sup -> Interval(nan,nan)
| _ , _ -> Interval(inf,sup)
由於幾乎所有情況下返回間隔(男,男)我想將它們分組,由於可讀性,但我不知道怎麼樣。我嘗試以下
但是編譯器說
的這種雙方「或」模式結合不同的組varibales的
所以我試過如下:
match inf, sup with
| nan , _
| _ , nan
-> Interval(nan,nan)
| _ , _ when inf = -infinity && sup = -infinity
| _ , _ when inf = infinity && sup = infinity
| _ , _ when inf > sup -> Interval(nan,nan)
-> Interval(nan,nan)
| _ , _ -> Interval(inf,sup)
這裏我得到第二個錯誤|從第二個條款開始。他期望有一個' - >'或其他標記。
所以:我怎樣才能縮短這個匹配,或者我該如何改進呢?那幾個Interval(nan,nan)似乎對我來說不太合適。
在此先感謝!
我懷疑'| | nan,_ | _,nan'就是你所希望的...... – ildjarn
https://en.wikipedia.org/wiki/NaN – FuleSnabel