Size: a a a

2020 October 12

I

Igor in F# Chat
IdiocyAcceptance
Все структуры по умолчанию передаются по значению. Плюс интересно узнать что именно имеется ввиду под ref struct - именно stackonly структуры или же byref/inref конструкции?
stackonly. Раньше как-то не попадал на это, а теперь вот попалась структура, которая изменяет свои поля.
источник

I

IdiocyAcceptance in F# Chat
Igor
stackonly. Раньше как-то не попадал на это, а теперь вот попалась структура, которая изменяет свои поля.
А структура жирная?
источник

I

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

I

Igor in F# Chat
так это не моя структура.
источник

I

IdiocyAcceptance in F# Chat
Но в целом соглашусь что работать в F# с реф структурами не так удобно, особенно удручает невозможность пока что использовать пайпы, крышечки и так далее
источник

I

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

I

IdiocyAcceptance in F# Chat
Немного копал эту вещь в компиляторе. Анализ реф структур идёт после создания TAST, а не после стадии ловеринга и оптимизаций. Так что побоку что у тебя инлайн функции или что конструкция someSpan |> Span.someFunc на самом деле является уже "законченной функций", тут нет карринга
источник

I

IdiocyAcceptance in F# Chat
На уровне TAST там видимо просто фанки фшарпные и ребята решили всё заблокировать нахер
источник

I

Igor in F# Chat
кстати да, при переходе на байтоёбское апи, пришлось убрать красивый код и переписать в императивном стиле
источник

I

IdiocyAcceptance in F# Chat
Igor
кстати да, при переходе на байтоёбское апи, пришлось убрать красивый код и переписать в императивном стиле
Мне, как человеку, пришедшему из C#, действительно кажется что в таких случаях (когда требуется суровый императивный код) лучше просто написать на C#
источник

I

IdiocyAcceptance in F# Chat
F# для меня сейчас самый приятный по синтаксису язык, но он такой в частности из-за ограничений
источник

I

IdiocyAcceptance in F# Chat
И не очень хочется через них прыгать
источник

g

gsomix in F# Chat
IdiocyAcceptance
Мне, как человеку, пришедшему из C#, действительно кажется что в таких случаях (когда требуется суровый императивный код) лучше просто написать на C#
А есть большая разница между императивным кодом на F# и C#? :)
источник

I

IdiocyAcceptance in F# Chat
gsomix
А есть большая разница между императивным кодом на F# и C#? :)
Ну для меня есть - как функциональный код проще писать на F#, так императивный проще писать на C#
источник

g

gsomix in F# Chat
IdiocyAcceptance
Ну для меня есть - как функциональный код проще писать на F#, так императивный проще писать на C#
В чем эта разница выражается?
источник

I

IdiocyAcceptance in F# Chat
early return/break, имплисит касты из коробки для всяких спанов, операторы работы с null, goto
источник

I

IdiocyAcceptance in F# Chat
мутабельность из коробки тоже
источник

I

IdiocyAcceptance in F# Chat
если брать проект в целом, то это звучит в целом нахер не нужно, но если брать конкретные локальные оптимизированные императивные кейсы, то полезно
источник

AH

Ayrat Hudaygulov in F# Chat
IdiocyAcceptance
early return/break, имплисит касты из коробки для всяких спанов, операторы работы с null, goto
Ну вот с приходом в фшарп нрт, я не вижу причин почему бы нам тоже не получить операторы типа ?. ?? И пр
источник

I

IdiocyAcceptance in F# Chat
Ayrat Hudaygulov
Ну вот с приходом в фшарп нрт, я не вижу причин почему бы нам тоже не получить операторы типа ?. ?? И пр
А ты в курсе кстати, будет или нет?
источник