Julia Notes

Overview

I have created a seperate repository julia-notes where I will be documenting my exploration of the Julia language.

I will use this directory as a link and overview, with some special language features highlighted, and recipes included.

As always, this repository is a work in progress.

Working notes

  • Abstract typing in Julia is not a specification of data structure, and can indeed be field-less. Abstract types model behaviour for a set hierarchy.

Project Templating

For example, with PkgTemplate for creating the directory structure for a package:

using Pkg

Pkg.add("PkgTemplates")
using PkgTemplates

template = Template(; user="fjebaker")

And generate the project structure with

generate(template, "ProjectName")

Which will generate a new project in ~/.julia/dev/, but can be changed with the dir keyword in Template.

On using vs import vs include

In general, using when you are using the functionality, and import when you are intending to extend. include is different, in the sense of a C-like directive, which will “copy” the source code into the module, and becomes accessible as an extension; i.e.

module Something

using ModuleIwillUse

import ModuleIwillExtend

include("SubModuleIwantToExpose.jl")

end