Functions

Basic Syntax


In [63]:
workspace()
function f(x,y)
    x*y
end

#another way to write a function

g(x,y) = x - y

#Unicode can also be used for function names:

(x,y) = x + y

x = 3

y = 2

println(f(x,y))
println(g(x,y))
println((x,y))


6
1
5

Using the Return Keyword


In [64]:
function h(x,y)
  return x * y
  x + y
end

println(h(2,3))

#The return function is useful in conjuction with control flow operators

function hypot(x,y)
  x = abs(x)
  y = abs(y)
  if x > y
    r = y/x
    return x*sqrt(1+r*r)
  end
  if y == 0
    return zero(x)
  end
  r = x/y
  return y*sqrt(1+r*r)
end

println(hypot(4,5))


6
6.4031242374328485

Operators as functions


In [65]:
println(1 + 2 + 3)
# + operator as a function:
+(1,2,3)


6
Out[65]:
6

Multiple return values


In [66]:
function k(a,b)
  return a+b, a*b
end

println(k(3,2))


(5,6)