发布于 2017-06-21 00:16:58 | 167 次阅读 | 评论: 0 | 来源: 网友投递
Julia 动态高级程序设计语言
Julia 是一个面向科学计算的高性能动态高级程序设计语言。其语法与其他科学计算语言相似。在许多情况下拥有能与编译型语言相媲美的性能。
Julia 0.6.0 发布了。Julia是一个新的高性能动态高级编程语言。语法和其他编程语言类似,易于其他语言用户学习。Julia拥有丰富的函数库,提供了数字精度、精致的增幅 器(sophisticated amplifier)和分布式并行运行方式。核心函数库等大多数库是由Julia编写,但也用成熟的C和FORTRAN库来处理线性代数、随机数产生和字 符串处理等问题。Julia语言可定义函数并且根据用户自定义的参数类型组合再进行重载。
新的语言特性:
New type system capabilities (#8974, #18457)
Type parameter constraints can refer to previous parameters, e.g. type Foo{R<:Real, A<:AbstractArray{R}}
. Can also be used in method definitions.
New syntax Array{T} where T<:Integer
, indicating a union of types over all specified values of T
(represented by a UnionAll
type). This provides behavior similar to parametric methods or typealias
, but can be used anywhere a type is accepted. This syntax can also be used in method definitions, e.g. function inv(M::Matrix{T}) where T<:AbstractFloat
. Anonymous functions can have type parameters via the syntax ((x::Array{T}) where T<:Real) -> 2x
.
Implicit type parameters, e.g. Vector{<:Real}
is equivalent to Vector{T} where T<:Real
, and similarly for Vector{>:Int}
(#20414).
Much more accurate subtype and type intersection algorithms. Method sorting and identification of equivalent and ambiguous methods are improved as a result.
语言变化:
"Inner constructor" syntax for parametric types is deprecated. For example, in this definition:
type Foo{T,S<:Real} x Foo(x) = new(x) end
the syntax Foo(x) = new(x)
actually defined a constructor for Foo{T,S}
, i.e. the case where the type parameters are specified. For clarity, this definition now must be written as Foo{T,S}(x) where {T,S<:Real} = new(x)
(#11310, #20308).
The keywords used to define types have changed (#19157, #20418).
In 0.6, immutable
and type
are still allowed as synonyms without a deprecation warning.
immutable
changes to struct
type
changes to mutable struct
abstract
changes to abstract type ... end
bitstype 32 Char
changes to primitive type Char 32 end
……
完整更新内容请查看更新日志。
下载地址: