More about functions
We have met functions in previous chapters defined as a function() … end
block and shown that there is a convenient one-line syntax for the simplest of cases:
# rsq(x) = 1/(x*x) is exactly equivalent to: function rsq(x) y = 1/(x*x) return y end
The y
variable is not needed (of course). It is local to the rsq()
function and has no existence outside the function call, and the last statement could be written as return 1/(x*x)
or even just as 1/(x*x)
, since functions in Julia return their last value.
The do syntax
In the previous chapter, we looked at ways of performing operations using broadcasting as an alternative to conventional for … end
loops and/or list comprehensions. In order to work more compactly, it is often useful to use a different construct using a do … end
block, which we will introduce here:
julia>
map([1,2,3,4]) do x
rsq(x)
...