cmcaine
Joined 9 years ago
Joined 9 years ago
It has the interactive features for inspecting and modifying a running system that Lisps often have.
It has reflection APIs
Its ints are big like Lisp
etc.
Seems pretty Lispy to me.
Firstly I like the aesthetic and implications of f(x, y, z) over x.f(y, z). I like that f is its own thing and not a property of x.
Secondly, it's really nice to be able to reach however far down the callstack you need to go to patch some function "owned" by someone else to act correctly or more efficiently with whatever your type is. You can get correct code most of the time with single dispatch and well-thought-out interfaces, but getting interfaces right in advance is really tricky and requires coordination with other users of the interface whereas multiple dispatch can often work well without much coordination and can also handle cases where you want the implementation to vary dramatically based on the type (the OneHotVector in Karpinski's "Unreasonable effectiveness of multiple dispatch" talk is an example of this).
The sci-fi author Charlie Stross has a series of blog posts on their site about all the work that goes into publishing a book and how much of it is done by employees of the publisher (and how that is not work that Stross can do / would like to do).
Julia did not initially support arrays that aren't indexed from 1 (experimental support added in Julia 0.5, I don't know when it was finalised), and at that time I'm not even sure we had something like eachindex, certainly there would be no reason why someone would use it for an array.
The boundschecking feature was added in 2015, so at the time they wrote their code and examples, they were correct.
The documentation and review happened in December and January 2016/2017 when the non 1-based indexing was still experimental and very new, so I don't think this is as big a fail as you've made out either.
Yes, the documentation should have been updated when non-standard indexing was made non-experimental, and the reviewers should maybe have noted the new and experimental array indexing stuff, but it's only natural to miss some things.
e.g. `\subseteq` followed by tab yields `⊆` or `\trademark` for `™`.
You can also do emoji with `\:eyes:` for ``
I think this is very practical and if you read code in Julia you can see that it's led to quite a lot of unicode and emoji in source code.
http://edition.cnn.com/2010/WORLD/asiapcf/10/13/china.mining...