Pacotes de software estendem as funções e comandos básicos da linguagem. O ecosistema da Julia contém mais de 7400 pacotes de software registrados e esse número continua crescendo. Com um número tão grande de pacotes, pode ser difícil encontrar o pacote desejado. Alguns serviços para ajudar a navegar nesse ecosistema são mencionados em https://julialang.org/packages. Em particular, podemos procurar pacotes de software usando https://juliahub.com/ui/Packages.
Além dos pacotes de software, a Julia possui comandos robustos para evocar funções de outras linguagems e interagir com elas.
Por exemplo, é simples chamar funções do Python ou do R usando os comandos PyCall
ou Rcall
.
Dessa forma, você pode usar pacotes de outras linguagems em seus programas em Julia.
Vejamos agora como usar um pacote de software. A primeira vez que você usa um pacote em uma instalação da Julia, você precisa usar o gerenciador de pacotes para instalá-lo:
using Pkg
Pkg.add("Example")
Updating registry at `~/.julia/registries/General.toml` Resolving package versions... No Changes to `~/julia-breve-intro/Project.toml` No Changes to `~/julia-breve-intro/Manifest.toml`
Para carregar um pacote em uma sessão da Julia, usa-se a palavra-chave using
.
No comando acima, carregamos o pacote Pkg
e depois usamos a função add
do pacote Pkg
para instalar o pacote Example
.
A seguir, carregamos o pacote Example
:
using Example
No código fonte de Example.jl
em https://github.com/JuliaLang/Example.jl/blob/master/src/Example.jl, encontramos a declaração da função
hello(who::String) = "Hello, $who"
Logo, após carregarmos o pacote Example
, podemos executar a função hello
:
hello("Julia")
"Hello, Julia"
Agora, vamos explorar o pacote Colors
.
Pkg.add("Colors")
Resolving package versions... No Changes to `~/julia-breve-intro/Project.toml` No Changes to `~/julia-breve-intro/Manifest.toml`
using Colors
Vamos criar uma paleta com 100 cores diferentes.
paleta = distinguishable_colors(100)
Usando o comando rand
, vamos criar uma matrix de cores 3x3.
Uma matrix 3x3 de números aleatorios entre 0 e 1:
rand(3, 3)
3×3 Matrix{Float64}: 0.351109 0.614968 0.607372 0.826391 0.344926 0.768653 0.346904 0.709069 0.496766
Uma matrix 3x3 de números aleatórios em 1:10
:
rand(1:10, 3, 3)
3×3 Matrix{Int64}: 3 5 5 4 9 4 9 2 7
Uma matrix 3x3 de cores aleatórias em paleta
:
rand(paleta, 3, 3)
Nos comandos acima usando rand
, o primeiro faz a seleção entre os números float de 0 a 1, o segundo entre os inteiros de 1 a 10, e o terceiro entre os elementos da paleta.
Procurando por Colors
em https://juliahub.com/ui/Packages encontramos informações sobre esse pacote, incluindo links para a documentação e código fonte.