Сейчас, когда языку полтора десятка лет, даже странно, что такой тип лишь сейчас предложен и что изначально array был мутабельным. Но Дон всегда бережно относился к интеропу (и правильно)
Я голосовал за ImArray и ImmArray, сразу за оба варианта. Возможно, второй тебе подошёл бы больше
А я не знал, что можно дважды. Пойду добавлю. Филипп вроде за ImmArray голосовал. По русским правилам двойная согласная сокращается по первой, обе не берутся. Как с этим в английском?
Если ты работаешь из сишарпа с эфшорпными типами, то лучше это оставить только на уровне функций. То есть var fsType = CallFsFunc. var vsType2 = CallFsFunc2. При этом надо следить что функции будут скомпилированы как методы, а не как FSharpFunc (то есть желательно без каррирования)
Если ты работаешь из сишарпа с эфшорпными типами, то лучше это оставить только на уровне функций. То есть var fsType = CallFsFunc. var vsType2 = CallFsFunc2. При этом надо следить что функции будут скомпилированы как методы, а не как FSharpFunc (то есть желательно без каррирования)
А так да, как выше написали. Либо объекты/интерфейсы, либо изначально заточить под сишорп. Ну то есть принимать не ('a -> unit) как зависимость в функции, а вместо этого Action<'a> и так далее
да, можно рекорды наружу выставлять, я так иногда в пульсаре делаю, главный минус это что with не работает в сишарпе, поэтому не всегда применимо, теперь лучше для этого нативные сишарпные рекорды юзать