Chapter 20. The Goodies: Base and Standard Library
Julia comes with batteries included. The Base
module contains the most useful functions, types, and macros. These are directly available in Julia.
Julia also provides a large number of specialized modules in its standard library for dates, distributed computing, linear algebra, profiling, random numbers, and more. Functions, types, and macros defined in the standard library have to be imported before they can be used:
-
import Module
imports the module, andModule.fn(x)
calls the functionfn
. -
using Module
imports all exportedModule
functions, types, and macros.
Additional functionality can be added from a growing collection of packages.
This chapter is not intended as a replacement of the official Julia documentation. The aim is merely to give some examples to illustrate what is possible, without being exhaustive. Functions already introduced elsewhere are not included.
Measuring Performance
We have seen that some algorithms perform better than others. The fibonnaci
implementation from “Memos” is a lot faster than the fib
implementation from “One More Example”. The @time
macro allows us to quantify the difference:
julia>
fib
(
1
)
1
julia>
fibonacci
(
1
)
1
julia>
@time
fib
(
40
)
0.567546 seconds (5 allocations: 176 bytes)
102334155
julia>
@time
fibonacci
(
40
)
0.000012 seconds (8 allocations: 1.547 KiB)
102334155
@time
prints the time the function took to execute, the number of allocations, and the allocated memory before returning ...
Get Think Julia now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.