Ayrat
Погодь, кто кого выпиливает?
Ayrat
причём здесь Сайм?
Pavel
типа пофиг мороз скорость одинаковая не партесь
Ayrat
уточни, кто кого выпиливает
Pavel
jit оптимизирует обрашеник к филду через проперь как прямое обращение к филду
Pavel
но это не точно )
Ayrat
но т.к. это всё же метод, то в нём можно сколько угодно дичи написать
Ayrat
и я хз когда он инлайнит а когда нет. Думаю что почти всегда
Но это не точно)
Bonart
Bonart
Там боюсь не гуглить, а тестить и реверсить надо
Pavel
в релизе оптимизит
Pavel
let o = y.C
00770873 mov ebx,dword ptr [eax+4]
Pavel
из type A() =
member val C = 0 with get, set
Pavel
вот так нагляднее let o = y.C
00770873 mov ebx,dword ptr [eax+4]
printfn "%A" o
Ayrat
а в дебаге нет?
Pavel
в дебаге нет
Ayrat
ну, логично
Pavel
там функция дергается
Ayrat
т.е. можно смело лепить пропертя и не ибать мозги
Ayrat
ну в принципе я догадывался
Ayrat
но хорошо когда есть подтверждение
Vasily
Кстати, а если туда сайд эффект засадить?
Ayrat
Ну кстати да
Ayrat
может он тривиальные только методы инлайнит
Vasily
Не, ну понятно, что поведение в дебаг/релиз отличается
Ayrat
типа в геттер печать в консоль забахать
Vasily
Ваще, канеш, диалог напоминает старый анекдот про мужиков, рельсу и японскую бензопилу
Pavel
тогда jit не найдет подходящий шаблон и нече не заинлайнит.
Ayrat
Vasily
Ну привезли на деревообрабатывающий завод новую японскую бензопилу
Vasily
Собрались мужики
Vasily
Думают
Vasily
Ща протестим
Vasily
Подсунули ветку
Pavel
let o = y.C
02DF086D mov ecx,55D64B4h
02DF0872 call 015A30F4
02DF0877 mov esi,eax
02DF0879 mov eax,dword ptr ds:[3F1230Ch]
02DF087F lea edx,[esi+4]
02DF0882 call 7280E780
02DF0887 call 717D1950
02DF088C mov edi,eax
02DF088E mov ecx,55D6AECh
02DF0893 call 015A30F4
02DF0898 mov ecx,eax
02DF089A lea edx,[ecx+4]
02DF089D call 7280E840
02DF08A2 push esi
02DF08A3 push 55D6FCCh
02DF08A8 mov edx,edi
02DF08AA call dword ptr ds:[55D6F9Ch]
printfn "%A" o
type A() =
member this.C
with get() = printfn "aaa"; 0
and set (v : int) = ()
Vasily
Вжух- сказала бензопила
Хуясе, сказали мужики
Подсунули ствол.
Вжжжжуууууух - сказала бензопила
Ну нихуясе - сказали мужики
Подсунули рельс
БЗДЫНЬ - сказала бензопила
Вооот - выдохнули мужики
Ayrat
Да, хороший анекдот)
Ayrat
я тож выдохнул спокойно когда увидел портянку говнокода выше
Ayrat
короче, тривиальным пропертям быть, а то делать ПОЛЯ в F# как-то заёбно, много правил тут и там
Vasily
А зачем тебе вообще там поля понадобились?
Ayrat
null вполне сойдёт)
Ayrat
и в стракте
Ayrat
этот стракт будет тредстатик и ему будет подсовываться новый референс постоянно
Ayrat
т.е. это изменяемое поле в долго живущем объекте на стаке
Ayrat
я подумал что ПОЛЕ хороший вариант. Но проперти тривиальное тоже сойдёт
Pavel
какое то другое окончание я у этого анекдота всегда видел
Pavel
не такое унылое
Pavel
-Тото, бля - сказали суровые сибирские мужики
Vladislav
Vladislav
а тут 140 сообщений про теорию поля
Vladislav
Vladislav
Vladislav
а ответ есть?
Ayrat
а ответ есть?
там же выше)) от @vshapenko который в спеку слазил
Vladislav
а, норм
Igor
Vasily
А почему кажется?
Vasily
Он и есть упоротый
Ayrat
Igor
Vladislav
Vladislav
А не упоротый
Vladislav
Он монада в 4 измерении
Igor
Ayrat
Vasily
Ни про первое, ни про второго не слышал
Igor
А кто это?
Ребят, ну стыдно не знать лучше курсы евер на русском (по хаскелю)
https://stepik.org/course/75
https://stepik.org/course/693
Vasily
Igor
А ещё у него есть
https://www.youtube.com/playlist?list=PLlb7e2G7aSpRDR44HMNqDHYgrAOPp7QLr
Igor
Первые 6 часов курса - он рассказывает про лямбда-исчисление
Igor
Vasily
Бля, карма работает, однако... Отдал фичу тестерам потестить. В фиче багов не нашли, но нашли в окружающей экосистеме
Ayrat