julia包中不可变名称的含义

时间:2014-08-21 21:25:19

标签: julia

我刚刚将包RandomMatrices.jl下载到julia,因为我需要计算Tracy-Widom密度。然而,文档并没有帮助我理解它的含义:

immutable TracyWidom <: ContinuousUnivariateDistribution
end

这个TracyWidom名称是什么类型的?我应该提供什么才能使用函数

进行一些测试
pdf(d::TracyWidom, t::Real)

包含在TracyWidom.jl中?

1 个答案:

答案 0 :(得分:6)

包定义了TracyWidow类型,没有字段。您可以通过键入TracyWidow来创建TracyWidow()类型的新实例。

要计算TracyWidow发布内容的PDF,请使用pdf(TracyWidow(), 0.5)

您可以从pdf类型签名中找出这一点:第一个参数应该是TracyWidow类型的对象,第二个类型是Real

Julia有一个rich type system,但此处的相关内容如下:abstract,无法创建,immutable,创建后无法修改,以及type这是“正常”类型。

在基于此的Distributions.jl中,为每个分发定义了类型,例如正态分布是

immutable Normal <: ContinuousUnivariateDistribution
    μ::Float64
    σ::Float64
    # Some other stuff...
end

更有意义,因为它由这两个参数定义 - TracyWidow不需要任何参数,但我们仍然遵循相同的风格。 <: ContinuousUnivariateDistribution表示NormalTracyWidow都是ContinuousUnivariateDistribution s,这是一种抽象类型。