What is ? mark in Julia?

If you use the help mode on the REPL by typing ? you can see the following documentation.

help?> ?
search: ? ?:

  a ? b : c

  Short form for conditionals; read "if a, evaluate b otherwise evaluate c". Also known as the ternary operator (https://en.wikipedia.org/wiki/%3F:).

  This syntax is equivalent to if a; b else c end, but is often used to emphasize the value b-or-c which is being used as part of a larger expression, rather
  than the side effects that evaluating b or c may have.

  See the manual section on control flow for more details.

  Examples
  ≡≡≡≡≡≡≡≡≡≡

  julia> x = 1; y = 2;
  
  julia> x > y ? println("x is larger") : println("y is larger")
  y is larger

So basically

pow2(x, n) = n <= 0 ? 1 : x*pow2(x, n-1)

is the same as:

function pow2(x,n)
    if n<=0
        return 1
    else
        return x*pow2(x,n-1)
    end
end

8 Likes