Size: a a a

2020 October 22

Г

Герман in F# Chat
Ayrat Hudaygulov
let opt = Some 1
let (None | Some _) = opt
let (Ok a | Err a) = Ok 3
:O
источник

AH

Ayrat Hudaygulov in F# Chat
Герман
let (Ok a | Err a) = Ok 3
:O
это сработает только если Ok и Err одного типа
источник

Г

Герман in F# Chat
ну да, логично
источник

AH

Ayrat Hudaygulov in F# Chat
ну в данном случае оно тебе выведет Result<int, int>
источник

AH

Ayrat Hudaygulov in F# Chat
Вообще это же обычный синтаксис

match Ok 3 with
| Ok a
| Err a -> ...
источник

AH

Ayrat Hudaygulov in F# Chat
match Ok 3 with
| Ok a | Err a -> ...
источник

AH

Ayrat Hudaygulov in F# Chat
Везде патерны
источник

IC

Ilya L Che in F# Chat
Я ничего не понял и думаю, что оно к лучшему.
источник

IC

Ilya L Che in F# Chat
Ayrat Hudaygulov
Хочешь ещё сломаю?

let (Some _ & None) = opt
Вот это эксепшен в рантайме кидает, кстати.
Unhandled exception. Microsoft.FSharp.Core.MatchFailureException: The match cases were incomplete
источник

AH

Ayrat Hudaygulov in F# Chat
Ilya L Che
Вот это эксепшен в рантайме кидает, кстати.
Unhandled exception. Microsoft.FSharp.Core.MatchFailureException: The match cases were incomplete
это логично
источник

AH

Ayrat Hudaygulov in F# Chat
Не может быть тип одновременно Some и None :D
источник

AH

Ayrat Hudaygulov in F# Chat
Я ж специально написал
источник

IC

Ilya L Che in F# Chat
Я думал, фшарп умный и не скомпилит такое вообще.
источник

AH

Ayrat Hudaygulov in F# Chat
Ilya L Che
Я думал, фшарп умный и не скомпилит такое вообще.
Стопе
источник

AH

Ayrat Hudaygulov in F# Chat
Хотя да, я тут подумал что понять что кинет в рантайме можно. если в двух ветвях & патерны одного DU
источник

AH

Ayrat Hudaygulov in F# Chat
Но в целом не сделано!
источник

AH

Ayrat Hudaygulov in F# Chat
(просто про & знает 3 инвалида)
источник

IC

Ilya L Che in F# Chat
А про | 4?)
источник

AH

Ayrat Hudaygulov in F# Chat
Ilya L Che
А про | 4?)
эт шо?
источник

IC

Ilya L Che in F# Chat
Ну про | знаю 4 инвалида.
источник