Size: a a a

2021 January 16

I

IdiocyAcceptance in F# Chat
Всякие out штуки и прочее
источник

I

IdiocyAcceptance in F# Chat
А потом из фаршика спокойно юзай
источник

AH

Ayrat Hudaygulov in F# Chat
Ильяс Рахимов
иногда приходится вызывать функции из комвского интеропа такого вида
let a (b: byref<obj>) = printfn "%A" b
аргумент приходится передавать таким образом:
let mutable arg = box "value"
a(&arg)
тут меня больше всего расстраивает, что для каждого аргумента приходится создавать переменную, можно как нибудь вызвать такую функцию не создавая переменные?
Но это полностью соответствует языку. Ты создаёшь значение "value" с чего бы вдруг оно имплицитно кастанулось в обжект и с чего вдруг оно внезапно стало бы мутабельным?
источник

AH

Ayrat Hudaygulov in F# Chat
То есть в сишарпе надо танцевать чтобы сделать дефолтное мутабельное иммутабельным, а в фшарпе надо танцевать чтобы сделать дефолтное иммутабельное мутабельным
источник

AH

Ayrat Hudaygulov in F# Chat
Если у тебя большая часть кода мутабельная, может ты зря взял язык с дефолтной иммутабельностью?
источник

AT

Anton Ternavsky in F# Chat
Ayrat Hudaygulov
Если у тебя большая часть кода мутабельная, может ты зря взял язык с дефолтной иммутабельностью?
+100500
источник

ИР

Ильяс Рахимов... in F# Chat
Ayrat Hudaygulov
Но это полностью соответствует языку. Ты создаёшь значение "value" с чего бы вдруг оно имплицитно кастанулось в обжект и с чего вдруг оно внезапно стало бы мутабельным?
ну может можно создать такую функцию, которая конвертирует любой тип в byref<obj> ?
источник

AH

Ayrat Hudaygulov in F# Chat
Ильяс Рахимов
ну может можно создать такую функцию, которая конвертирует любой тип в byref<obj> ?
Нет. Потому что это противоречит языку
источник

I

IdiocyAcceptance in F# Chat
Ильяс Рахимов
ну может можно создать такую функцию, которая конвертирует любой тип в byref<obj> ?
?
источник

ИР

Ильяс Рахимов... in F# Chat
источник

AH

Ayrat Hudaygulov in F# Chat
Это не делает изначальный обж мутабельным
источник

AH

Ayrat Hudaygulov in F# Chat
Но создаёт его мутабельную копию
источник

AH

Ayrat Hudaygulov in F# Chat
Что ок
источник

I

IdiocyAcceptance in F# Chat
Ayrat Hudaygulov
Но создаёт его мутабельную копию
инлайн так то
источник

I

IdiocyAcceptance in F# Chat
но видимо всё равно без переменной не работает
источник

I

IdiocyAcceptance in F# Chat
хотя можно наверное сделать хитро с thread static переменной
источник

AH

Ayrat Hudaygulov in F# Chat
IdiocyAcceptance
но видимо всё равно без переменной не работает
Стопудово должна быть копия. Иначе это пиздец языку
источник

AH

Ayrat Hudaygulov in F# Chat
Ты можешь в любой функции отмутировать то что иммутабельно без ансейфа
источник

I

IdiocyAcceptance in F# Chat
IdiocyAcceptance
хотя можно наверное сделать хитро с thread static переменной
Хотя я опять же не понимаю как сделать это в фарше
источник

I

IdiocyAcceptance in F# Chat
В смысле с точки зрения синтаксиса
источник