1. 4

Major feature seems to be vastly improved capabilities for type parameters.


  2. 2

    This caught my eye: apparently Julia does not shy away from operators named with Unicode symbols, even in the standardlib. Interesting!

    • The operators ! and ( \circ<tab> at the REPL and in most code editors) now respectively perform predicate function negation and function composition. For example, map(!iszero, (0, 1)) is now equivalent to map(x -> !iszero(x), (0, 1)) and map(uppercase ∘ hex, 250:255) is now equivalent to map(x -> uppercase(hex(x)), 250:255)

    I like the legibility, and the in-REPL replacement, but the fact that there seems to be no fallback if the REPL and editor are absent niggles at me.

    Could a Julia user tell me whether the following is correct? This ‘type TeX name, Tab to get Unicode sym’-style autoreplacement happens at typing time, and it seems to have no syntax counterpart that happens at parse time.

    An example of what I mean: if you have no REPL to hand and an a primitive editor, then knowing is entered as \otimes<Tab> won’t help you: it won’t help you because you can’t type a \otimes b or a fromTeX('otimes') b or any such thing. Instead, you’ll have to fall back on writing kron(a, b).

    On Julia in general, I am still thrilled by the fact that it aims for interactive usage, speed, and being good for programming. R has great interactive usage, but isn’t fast, and not great for programming; Matlab is fast and good for interactive usage, but not, I understand, a particularly good programming language; and Python is good for programming in, and fast, but for interactive usage I find the syntax too restrictive. So I use R and Python; but I cheer for R, Python, and Julia. :-)

    1. 3

      That’s right. If you do a lot of editing in ed or nano, you could define:

      compose = ∘
      mykron = ⊗

      and then use those throughout your program.