Julia Notes Day1 -- functions and operators

·

3 min read

Functions

∑(n) = sum(1:n)

∑(3) # Output: 6
∑(100) # Output: 5050

Unicode variable and function names are allowed.

Julia functions can be defined using compact "assignment form" syntax.

The value returned by a function is the value of the last expression evaluated, the return keyword can be omited.

∏(n) = (p=1; for i in 1:n; p*=i; end; p) # the ; chain syntax

∏(4) # Output: 24
∏(10) # Output: 3628800

Sometimes it is convenient to have a single expression which evaluates several subexpressions in order, returning the value of the last subexpression as its value.

There are two Julia constructs that accomplish this: begin blocks and ; chains.

function foo(a,b)
    a+b, a*b #return multiple values by returning a tuple
end

foo(2,3) # Output: (5, 6)

Julia has a built-in data structure called a tuple that is closely related to function arguments and return values.

Operators

In Julia, operators and symbols often have specific meanings or uses that are integral to the language's syntax and functionality. Below is a list of some of these symbols, along with brief explanations and code examples to illustrate their use:

Arithmetic Operators

  • + (Addition)

  • - (Subtraction)

  • * (Multiplication)

  • / (Division)

  • ÷ (integer divide)

  • ^ (Power)

  • % (Remainder)

Comparison Operators

  • == (Equal to)

  • != or (Not equal to)

  • < (Less than)

  • > (Greater than)

  • <= or (Less than or equal to)

  • >= or (Greater than or equal to)

Logical Operators

  • ! (Not)

  • && (And)

  • || (Or)

Bitwise Operators

  • & (And)

  • | (Or)

  • ~ (Not)

  • << (logical/arithmetic shift left)

  • >> (arithmetic shift right)

  • >>> (logical shift right)

  • bitwise xor (exclusive or)

  • bitwise nand (not and)

  • bitwise nor (not or)

Special Symbols

  • : (Colon, used for ranges)

  • ; (Semicolon, used to separate expressions)

  • => (Pair, used in dictionaries)

  • [] (Brackets, used for indexing or array literals)

  • {} (Curly braces, used for comprehension or generator expressions)

  • () (Parentheses, used for grouping or function calls)

  • |> (Pipe, used for function chaining)

  • . (Dot, used for broadcasting)

# Range
1:5  # 1:5

# Pair and Dictionary
dict = Dict("a" => 1, "b" => 2)

# Pipe
sqrt(25) |> println  # 5.0

# Broadcasting
[1, 2, 3] .+ 1  # [2, 3, 4]
1:3 .|> (x -> x^2)  # [1, 4, 9]
  • \ (Backslash, used for solving linear equations, A \ b solves Ax = b)

  • // (Rational, creates a rational number)

# Solving linear equations
A = [1 2; 3 4]
b = [5, 11]
A \ b  # [1.0, 2.0]

# Rational number
3 // 4  # 3//4