Size: a a a

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

2021 June 25

АО

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

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Есть, кстати ещё https://github.com/andyferris/Dictionaries.jl
источник

АО

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

A

Alexandr in Язык программирования Julia / Julia programming language
Есть еще RobinDict в  DataStructures. Это те же яйца только с пререстоновкой элементов небольшой при вставке
источник

АО

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

julia> v = ["hello", "world"]
2-element Vector{String}:
"hello"
"world"

julia> Base._unsetindex!(v, 1)
2-element Vector{String}:
#undef
   "world"
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
А, ну да, логично.
Если в векторе хранятся только ссылки на объекты, то они удаляются при помощи этой операции, и потом убиваются  GC.
источник

АО

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

АО

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

A

Alexandr in Язык программирования Julia / Julia programming language
Только не на ключе, а на любом ключе с таким же хешом 🙂 Т.е. оно перетирется при следующей вставке любого ключа который попадет в тот же хэш
источник

АО

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

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
То есть ещё хуже 😊
источник

АО

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

Ну, то есть понятно, что один в один невозможно, но GC в Джулии известный, и его наверное можно подменить на что-то другое.
источник
2021 June 26

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Интересно, в 1.8 (или в 1.7?) если пакет не установлен, но он есть в Registry, то Pkg предлагает его установить.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
julia> using LightGraphs
│ Package LightGraphs not found, but a package named LightGraphs is available from a registry.
│ Install package?
│   (zulip2021-06-26) pkg> add LightGraphs
└ (y/n) [y]: y
  Resolving package versions...
   Updating `~/Projects/BabySteps/Discourse/zulip2021-06-26/Project.toml`
 [093fc24a] + LightGraphs v1.3.5
   Updating `~/Projects/BabySteps/Discourse/zulip2021-06-26/Manifest.toml`
 [cd3eb016] ↑ HTTP v0.8.19 ⇒ v0.9.10
 [5c2747f8] + URIs v1.3.0
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
в новом Плуто пакет сразу ставится :)
источник

АО

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

AP

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

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
отдельный environment для каждого ноутбука
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
и автоматом сохраняется project/manifest.toml
источник

АО

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