Size: a a a

2020 November 06

SG

Semyon Grigorev in F# Chat
Semyon Grigorev
Первый вариат как раз без юнита. Там из инта в инт.
Кстати, let getter' = (^t : (member Get : _ -> int) (x, y)) тоже работает.
Ну и
let inline getter2 (x : ^t) =
   let getter' = (^t : (member Get : _ -> int) (x, ()))
   getter'
тоже. Вывод — не лезь со своими подсказками, компилятор умный, сам справится.
источник

Dv

Dr. Friedrich von Ne... in F# Chat
Semyon Grigorev
Ну и
let inline getter2 (x : ^t) =
   let getter' = (^t : (member Get : _ -> int) (x, ()))
   getter'
тоже. Вывод — не лезь со своими подсказками, компилятор умный, сам справится.
Вот весьма забавно, что это работает %)
источник

Dv

Dr. Friedrich von Ne... in F# Chat
Ну то есть, да, очень неконсистентно получается. Я даже не знаю, баг или фича.
источник

SG

Semyon Grigorev in F# Chat
Dr. Friedrich von Never
Ну то есть, да, очень неконсистентно получается. Я даже не знаю, баг или фича.
Вот не знаю. Но неконсистентно, да. Я бы сказал, что бага)
источник

SG

Semyon Grigorev in F# Chat
Dr. Friedrich von Never
Вот весьма забавно, что это работает %)
источник

SG

Semyon Grigorev in F# Chat
Очень странное поведение...
источник

Dv

Dr. Friedrich von Ne... in F# Chat
Гм, да, тут вообще фигня какая-то.
источник

SG

Semyon Grigorev in F# Chat
Dr. Friedrich von Never
Гм, да, тут вообще фигня какая-то.
+1
источник

Dv

Dr. Friedrich von Ne... in F# Chat
Можешь сходить в багтрекер компилятора и зарепортить :)
источник

Dv

Dr. Friedrich von Ne... in F# Chat
Но я совершенно не удивлён, что SRTP в таком месте работают неинтуитивно :(
источник

SG

Semyon Grigorev in F# Chat
Dr. Friedrich von Never
Можешь сходить в багтрекер компилятора и зарепортить :)
Видимо, стоит попробовать. Заодно объяснят, где тут наша интуиция ломается)
источник

VS

Vasily Shapenko in F# Chat
By design. Скорее всего ответ такой будет
источник

TK

Traveller Kolsky in F# Chat
Думаю, по той же причине, по которой нельзя вызвать WithGet.Get(x, ())
источник

TK

Traveller Kolsky in F# Chat
Хотя нет, это наследие свойств сишарпа шалит. Unit не считается за аргумент, и при замене () на _ ломается уже (и только) второй пример.
источник

ДБ

Дмитрий Башинский... in F# Chat
Скажите, а ведь нейронные сети и вообще работать с большими обьектами без мутаций не выгодно?
Как к примеру пишут нейронку на хаскеле?
источник

VS

Vasily Shapenko in F# Chat
А ты вообще уверен, что на хаскеле пишут нейронки?
источник

VS

Vasily Shapenko in F# Chat
Ну и короткий ответ - да, невыгодно
источник

ДБ

Дмитрий Башинский... in F# Chat
К примеру пару тыщ нейронов, и нужно изменить 1 вес
Копировать все как то звучит тут дорого
источник

АВ

Андрей Вилинский... in F# Chat
Ilya L Che
Просто есть ещё каррирование, когда внешняя функция возвращает внутреннюю с одним аргументом, эта внутренняя функция возвращает ещё одну, и т.д.
только этот пример не про карирование, а просто про функции высшего порядка. Каррирование, если так можно выразиться, это возможность недодать агрументов (частично применить) и додать третий потом, но в твоем случае у тебя их всего два, так что не совсем то
источник

ДБ

Дмитрий Башинский... in F# Chat
Vasily Shapenko
Ну и короткий ответ - да, невыгодно
Разве что специально описать тип так что б точечно копировать
источник