Почему функциональные языки используют объекты для типов данных? - PullRequest
0 голосов
/ 31 мая 2018

Я чувствую тенденцию, что большинство функциональных языков, таких как Kotlin и Scala, обрабатывают все типы данных как объекты.

Double, Float, Long, Int .. Все они являются реальными объектами и непредложить какую-нибудь примитивную альтернативу?

Почему функциональные языки предпочитают объекты?Это просто потому, что проще предложить операционную перегрузку и полиморфизм?Или в этом есть более глубокий смысл?

1 Ответ

0 голосов
/ 31 мая 2018

Это не имеет ничего общего с функциональными языками.На самом деле это верно и для почти всех объектно-ориентированных языков.

Искусственное разбиение значений на два вида вещей только создает сложности, почему будет желать этого?

Вполне возможно создать эффективный код для арифметических операций над числовыми объектами.Фактически, большинство высокопроизводительных реализаций OO генерируют код, работающий с примитивными типами машинных номеров даже для «номеров объектов».Итак, если вы можете сгенерировать один и тот же машинный код для обоих случаев, но один из случаев проще, потому что у него нет этого искусственного разделения, тогда кажется очевидным, что дизайн лучше, не так ли?

Теперь, если вы хотите спросить меня, почему дизайнеры Java сделали именно этот выбор, я не могу вам сказать.Они, безусловно, должны были знать о работе команды Self, которая в конце концов работала в Sun.

...