Size: a a a

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

2020 November 06

AK

Alexandr Krotov in Язык программирования Julia / Julia programming language
а как-то посмотреть сколько переменная весит можно?
источник

АО

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

AK

Alexandr Krotov in Язык программирования Julia / Julia programming language
точно, сайзоф
источник

V

Vladimir in Язык программирования Julia / Julia programming language
Андрей Оськин
Ну это страшный абьюз системы типов, разумеется
Тут мне разъяснили, что так делать нехорошо и что с 4х таких функций наступает предел и всё, баста... Сплошные тебе инвалидации и всё такое... https://discourse.julialang.org/t/unstable-type-with-dispatch-by-val-x-with-5-functions/48072
источник

АО

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

УМ

Убийца Мамонтов... in Язык программирования Julia / Julia programming language
Андрей Оськин
fibonacci (Val{n}) = fibonacci(Val{n-1}) + fibonacci(Val{n-2})
так это ж замкнутая штука, разве нет?
источник

АО

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

Кстати, я по памяти писал, немного неправильно.

Корректный вариант выглядит так:

fibonacci(::Val{0}) = 0
fibonacci(::Val{1}) = 1
fibonacci(::Val{n}) where n = fibonacci(Val{n-1}()) + fibonacci(Val{n-2}())

ну и собственно вызов
julia> fibonacci(Val{10}())
55
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Ну, то есть по факту, когда вызывается fibonacci(Val{10}()), то несчастный компилятор рекурсивно компилирует все промежуточные функции. При этом он догадывается, что функции - константы, и последующие вызовы будут занимать ровно то время, сколько компилятору потребуется на то, чтобы в таблице функций найти подходящую.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Поэтому время вызова любой функции - O(1), но компиляция растёт линейно.
источник

АО

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

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
julia> @btime fibonacci(Val{100}())
 0.017 ns (0 allocations: 0 bytes)
3736710778780434371
источник

УМ

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

Кстати, я по памяти писал, немного неправильно.

Корректный вариант выглядит так:

fibonacci(::Val{0}) = 0
fibonacci(::Val{1}) = 1
fibonacci(::Val{n}) where n = fibonacci(Val{n-1}()) + fibonacci(Val{n-2}())

ну и собственно вызов
julia> fibonacci(Val{10}())
55
ну вот теперь не замкнутая
источник

УМ

Убийца Мамонтов... in Язык программирования Julia / Julia programming language
но это дебилизм какой-то
источник

УМ

Убийца Мамонтов... in Язык программирования Julia / Julia programming language
)
источник

АО

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

АО

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

AZ

Aleksey Zhdanov in Язык программирования Julia / Julia programming language
Убийца Мамонтов
я думаю, если жулия станет чем-то реально хайповым, то поддержка на андроиде себя долго ждать не заставит (субъективное мнение)
М.б. на линуксовых телефонах зайдёт, решил следующий брать себе именно такой
источник

УМ

Убийца Мамонтов... in Язык программирования Julia / Julia programming language
Aleksey Zhdanov
М.б. на линуксовых телефонах зайдёт, решил следующий брать себе именно такой
а ты точно уверен? по-моему это немножко садомазо
источник

AZ

Aleksey Zhdanov in Язык программирования Julia / Julia programming language
Убийца Мамонтов
а ты точно уверен? по-моему это немножко садомазо
Я думаю справлюсь
источник

УМ

Убийца Мамонтов... in Язык программирования Julia / Julia programming language
тип я всеми членами за фосс и всё такое, но они пока ещё не готовы к повседневной эксплуатации
источник