Изменения в версии 0.6
Уже давно висит Julia v0.6.0 Release Notes по адресу https://github.com/JuliaLang/julia/blob/master/NEWS.md
Теперь, когда выложена пре-альфа версия, можно вкратце перечислить, что будет в 0.6.
Здесь я напишу, только самые интересные из тех изменений, которые смог понять без детального ознакомления с кодом.
- В объявлениях типов можно ссылаться на ранее упомянутый типовой параметр:
type Foo{R<:Real, A<:AbstractArray{R}} - Наконец, можно будет сказать так:
Array{T} where T<:Intege
Анонимные функции с использованием этого синтаксиса можно объявлять так ((x::Array{T}) where T<:Real) -> 2x
- Возможен неявный типовой параметр:
Vector{<:Real}что значит:Vector{T} where T<:Real Вместо
immutableлучше писатьstructВместо
type- лучшеmutable structВместо
abstract-abstract type ... endВместо
bitstype 32 Char-primitive type Char 32 end
immutable и type все еще разрешены (не deprecated )
typealias - устарело, надо использовать const или форму присвоения Vector{T} = Array{T,1}
readline,readlines,eachline- автоматически делаютchomp()
Если требуется старое поведение, то нужно писать readline(s, chomp=false)
Stringбольше не имеет поля.data- Появился тип
UnionAll, который неявно используется, например, когда указывается неопределенныйArray, как типовой параметр chopиchompтеперь возвращаютSubString- Когда после ошибки в REPL печатается нумерованный стектрейс, то открытие соответствующего исходника возможно набором указанного номера и нажатия
^Q - При вставке текста, если некоторые строки начинаются с
julia>, то только такие строки будут парситься. Остальные будут отброшены. - Функция
print_with_colorпринимает еще и числовой параметр0 - 255
Появилась интересная функция "функциональная композиция". Именем ее является \\circ<tab> .
Появилась функция "композиция с отрицанием" - передал смысл своими словами. Когда ! применено к имени функции, результат - функция возвращающая логическое "нет" от результата исходной функции.
И есть еще много другого.