Size: a a a

Programming Offtop

2020 June 25

AN

Alexander Nozik in Programming Offtop
В общем случае это нельзя сделать костистентно, поэтому надо тем или иным способом определять алгебру, в которой работаете
источник

BP

Bogdan Panchenko in Programming Offtop
Alexander Nozik
На самом деле связь довольно непосредственная. Платон вот тоже как раз рассматривал абстрактные идеалы. На практике я уже в нескольких выступлениях объяснял, почему нельзя сделать обобщенные операции для Number, не огребая в каком-то месте
Я думаю что Number + Double должен отдавать Double. Ну и дальше по спеке jvm. Или это не спека ...
источник

AN

Alexander Nozik in Programming Offtop
Bogdan Panchenko
Я думаю что Number + Double должен отдавать Double. Ну и дальше по спеке jvm. Или это не спека ...
А если Number  - это BigDecimal
источник

BP

Bogdan Panchenko in Programming Offtop
Alexander Nozik
А если Number  - это BigDecimal
То его
источник

AN

Alexander Nozik in Programming Offtop
Или short? или Float
источник

(

( in Programming Offtop
Alexander Nozik
Проблема в том, что правила разные для разных чисел. Как только привязываешь операции к типу первого операнда, оказывается, что нарушается контракт того же сложение и a + b != b + a
а, из-за несчастного субтайпинга
Ладно, принимается
источник

BP

Bogdan Panchenko in Programming Offtop
Либо Double
источник

BP

Bogdan Panchenko in Programming Offtop
Alexander Nozik
Или short? или Float
Я же сказал по спеке . Int + Float что даст, а short + int
источник

AN

Alexander Nozik in Programming Offtop
о, до свиданья  коммутитивность
источник

BP

Bogdan Panchenko in Programming Offtop
В итоге это называется привидением типов
источник

AN

Alexander Nozik in Programming Offtop
Единственный вариант этого избежать - это явно задать алгебру и договориться, что в этой алгебре всегда получается, например Double
источник

AN

Alexander Nozik in Programming Offtop
Ну и надо помнить про боксинг.
источник

BP

Bogdan Panchenko in Programming Offtop
Alexander Nozik
Проблема в том, что правила разные для разных чисел. Как только привязываешь операции к типу первого операнда, оказывается, что нарушается контракт того же сложение и a + b != b + a
В Pharo сделали. Но там эт жесть. У них BigDecimal автоматом приводится при сложении слишком большого числа
источник

AN

Alexander Nozik in Programming Offtop
Bogdan Panchenko
В Pharo сделали. Но там эт жесть. У них BigDecimal автоматом приводится при сложении слишком большого числа
А вот это, детектив, очень дорого.
источник

BP

Bogdan Panchenko in Programming Offtop
Ну для числодробильней да
источник

AN

Alexander Nozik in Programming Offtop
А не для числодробителей религия позволит все скастить к даблам и не мучиться
источник

AN

Alexander Nozik in Programming Offtop
кроме денег :)
источник

BP

Bogdan Panchenko in Programming Offtop
Alexander Nozik
А не для числодробителей религия позволит все скастить к даблам и не мучиться
Зачем если можно и так не мучатся 🤷‍♂
источник

AN

Alexander Nozik in Programming Offtop
Bogdan Panchenko
Зачем если можно и так не мучатся 🤷‍♂
Ну я не знаю, нафига @happy_bracket  в андроиде асбтрактные нумберы потребовались
источник

(

( in Programming Offtop
Alexander Nozik
Ну я не знаю, нафига @happy_bracket  в андроиде асбтрактные нумберы потребовались
Сделать ключ-значение структуру с абстрактными ключами*
источник