Size: a a a

Язык программирования Julia / Julia programming language

2021 February 24

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Помнится больше всего меня убивало, что enumerate возвращает какой-то ужасный тип, который нельзя напрямую складывать с интом.
источник

A

Alexandr in Язык программирования Julia / Julia programming language
Вообщем тут как и везде и всегда все решает баланс, опыт и удобство в конкретной задаче. Общих рецептов нет
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
+
источник

A

Alexandr in Язык программирования Julia / Julia programming language
В тех же c++ типизация очень жесткая  со всякими const модификаторами и ссылками - если правильно ее использовать она может сильно помочь. Но кривой код при желании написать нисколько не помешает 🙂
источник

K

Kasatka❌ in Язык программирования Julia / Julia programming language
Alexandr
В тех же c++ типизация очень жесткая  со всякими const модификаторами и ссылками - если правильно ее использовать она может сильно помочь. Но кривой код при желании написать нисколько не помешает 🙂
в c++ инты кастятся к флотам и vice versa
источник

A

Alexandr in Язык программирования Julia / Julia programming language
Это да. А вот const_reference к reference нет 🙂
источник

A

Alexandr in Язык программирования Julia / Julia programming language
Что по первости хорошо сбивает с толку
источник

K

Kasatka❌ in Язык программирования Julia / Julia programming language
Андрей Оськин
У меня был опыт с Растом (да простят меня растоманы этого чата). Он вроде как тоже позиционируется, как язык в котором если уж программа скомпилируется, то она гарантировано будет работать.

В результате когда я устал бороться с bound checker я просто везде начал лепить clone/copy (не помню точного названия), все типы преобразовывал максимально безобразным (но коротким) образом. Ну и в общем, качество кода и выполнения было ниже плинтуса. Это конечно больше говорит о моих способностях как разработчика на расте 😊 Но в целом, если на всё плевать, то типизация мало чем помочь.
на любом языке можно писать как на фортране 😏
источник

K

Kasatka❌ in Язык программирования Julia / Julia programming language
Андрей Оськин
Помнится больше всего меня убивало, что enumerate возвращает какой-то ужасный тип, который нельзя напрямую складывать с интом.
ленивые итераторы
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Что такое ленивые итераторы?
источник

K

Kasatka❌ in Язык программирования Julia / Julia programming language
операции цепляются одна за другой и вычисляются только когда в этом есть потребность
источник

K

Kasatka❌ in Язык программирования Julia / Julia programming language
источник

DG

David Graycen in Язык программирования Julia / Julia programming language
Андрей Оськин
Что такое ленивые итераторы?
вычисление походу итерации
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Мне нужно было сделать условно что-то вроде такого:

for (i, x) in enumerate(v)
  s += i + x
end
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Это было просто по условию задачи.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
И это было крайне неприятно после Джулии, потому что выяснилось, что promote_rules завезти забыли.
источник

K

Kasatka❌ in Язык программирования Julia / Julia programming language
надо будет enumerate(v).collect() дернуть чтобы массив элементов получился на выходе
источник

K

Kasatka❌ in Язык программирования Julia / Julia programming language
вообще идиоматически это делается через fold или через sum
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Наверное так чувствует себя человек, который пытается упрощённый пример на Джулии привести, который объясняет его проблему 😊 А ему приводят в качестве ответа всякие функции, которые решают какую-то частную задачу, но не его проблему.

То есть, у меня конечно не i + x было. Была какая-то довольно длинная операция из кучи строчек, где посередине нужно было какие-то манипуляции производить с порядковым номером и значением массива. И это было неудобно, потому  что типы у них были совсем разные, хотя по факту и то и другое было просто интом.

Наверное можно было исходно задачу как-то по другому решать и такой проблемы вообще не возникло бы. Но вот, что есть то есть, в расте промоушн отсутствует и это грустно.
источник

K

Kasatka❌ in Язык программирования Julia / Julia programming language
промоушен это источник потенциальных багов, например такое:
x * length(v)
x
- float, v - массив

автор хочет умножить x на длину вектора, путает norm и length в итоге умножает  x на количество элементов в векторе 😁

в строгом языке ему не дали бы умножить int на float
источник