Size: a a a

2020 December 22

I

IdiocyAcceptance in F# Chat
Vladimir Shchur
да, надо видимо настоящий юпитер скачать
я пользовался некоторое время, но ноутбуки в vscode показались удобнее
источник

I

Igor in F# Chat
источник

VS

Vladimir Shchur in F# Chat
Igor
а какие экстенжны ставил? а то у меня коряво очень выглядит))
источник

I

Igor in F# Chat
@Lanayx сделай файл *.dib
источник

I

Igor in F# Chat
это не коряво, так выглядит .ipynb
источник
2020 December 23

VK

Vic Khov in F# Chat
Как написать в структуре констрейнт для static member get_Zero?
источник

VK

Vic Khov in F# Chat
вроде как констрейнт добавил, почему компилятор меня ругает? загадочный F#...
источник

P

Pavel in F# Chat
Vic Khov
Как написать в структуре констрейнт для static member get_Zero?
Попробуй констрейнт так описать
(static member Zero: ^U)
источник

NK

ID:0 in F# Chat
источник

VK

Vic Khov in F# Chat
хммм, а есть в F# что-то, что определило бы для типа базовое наличие поддержки арифметических операторов: +, -
что-то вроде интерфейса INumeric?

Например для Point мне бы хотелось параметризировать тип для X, Y, т.о. получать например
Point<float> {X = 0.0; Y = 0.0}, Point<int> = {X = 0; Y = 0} и т.д.
источник

SN

Shub Niggurath in F# Chat
Vic Khov
хммм, а есть в F# что-то, что определило бы для типа базовое наличие поддержки арифметических операторов: +, -
что-то вроде интерфейса INumeric?

Например для Point мне бы хотелось параметризировать тип для X, Y, т.о. получать например
Point<float> {X = 0.0; Y = 0.0}, Point<int> = {X = 0; Y = 0} и т.д.
Штатные методы типа op_*
источник

SN

Shub Niggurath in F# Chat
> базовое наличие поддержки
Я вас услышал, но пока не готов дать вам полный ответ, но есть контакт человечка, который может порешать ваш вопросик. Все, на созвоне
источник

VK

Vic Khov in F# Chat
Shub Niggurath
> базовое наличие поддержки
Я вас услышал, но пока не готов дать вам полный ответ, но есть контакт человечка, который может порешать ваш вопросик. Все, на созвоне
Спасибо)
источник

VK

Vic Khov in F# Chat
а их можно использовать только в констрейнтах?
источник

SN

Shub Niggurath in F# Chat
Vic Khov
а их можно использовать только в констрейнтах?
Сам я не пробовал, но srtp не накладывает ограничения на методы. Там придется выяснить, какое именно имя оно ожидает
источник

VK

Vic Khov in F# Chat
ну т.е. насколько я понимаю static member (+) нельзя включить в интерфейс, но тогда при попытке описать Point<'T> я не могу гарантировать, кроме как через констрейнт, что у типа 'T есть оператор "плюс" (+) — а выяснять сколько именно и какие констрейнты хочет видеть от меня компилятор — иногда бывает не очень удобно, например

например с Matrix<'T> у меня это получилось наугад, потому что компилятор не подчёркивает какого констрейнта не хватает — он просто выдаёт ошибку "..." could not be generalized и подчёркивает всё как ошибку
источник

VK

Vic Khov in F# Chat
я скорее всего просто дженериковость в F# как-то неправильно использую, потому что я думаю что there must be a better way — я имею в виду что, возможно есть способ лучше (которого я просто не знаю)  описать какие операторы мне нужны для типа 'T, чем вот так
источник

SN

Shub Niggurath in F# Chat
Пардон, с телефона я ответить не могу
источник

VS

Vladimir Shchur in F# Chat
Vic Khov
ну т.е. насколько я понимаю static member (+) нельзя включить в интерфейс, но тогда при попытке описать Point<'T> я не могу гарантировать, кроме как через констрейнт, что у типа 'T есть оператор "плюс" (+) — а выяснять сколько именно и какие констрейнты хочет видеть от меня компилятор — иногда бывает не очень удобно, например

например с Matrix<'T> у меня это получилось наугад, потому что компилятор не подчёркивает какого констрейнта не хватает — он просто выдаёт ошибку "..." could not be generalized и подчёркивает всё как ошибку
констрейнты тебе нужны не при определении типа, а при использовании, поэтому при определении тебе не нужно париться
источник

SB

S B in F# Chat
Vic Khov
ну т.е. насколько я понимаю static member (+) нельзя включить в интерфейс, но тогда при попытке описать Point<'T> я не могу гарантировать, кроме как через констрейнт, что у типа 'T есть оператор "плюс" (+) — а выяснять сколько именно и какие констрейнты хочет видеть от меня компилятор — иногда бывает не очень удобно, например

например с Matrix<'T> у меня это получилось наугад, потому что компилятор не подчёркивает какого констрейнта не хватает — он просто выдаёт ошибку "..." could not be generalized и подчёркивает всё как ошибку
это очень странное, нетипичное представление. в общем-то это должно выглядеть примерно так: type Matrix<'t> = Matrix of zero:'t * one:'t * plus:('t -> 't -'t), т.е. именованный кортеж.
источник