Skip to content

Details

Cel tego spotkania jest prosty. Chcę pokazać uczestnikom co znaczy poniższa definicja funkcji (prawdziwy kod w bibliotece DataFrames.jl z dokładnością do formatowania, którego meetup.com nie chce mi zrobić dobrze):

function rename!(df::AbstractDataFrame,
args::Union{AbstractVector{<:Pair{Symbol,<:AbstractString}},
AbstractVector{<:Pair{<:AbstractString,Symbol}},
AbstractVector{<:Pair{<:AbstractString,<:AbstractString}}})
rename!(index(df), [Symbol(from) => Symbol(to) for (from, to) in args])
return df
end

i czym się różni w działaniu od:

function rename!(df::AbstractDataFrame,
args::AbstractVector{<:Pair{<:Union{Symbol,AbstractString}, <:Union{Symbol,AbstractString}}})
rename!(index(df), [Symbol(from) => Symbol(to) for (from, to) in args])
return df
end

(ta wersja została odrzucona jako niepożądana)

Przy okazji pomówimy o covariance, contravariance i invariance w systemie plików języka Julia (piszę po angielsku, ponieważ nigdy nie mam pewności jak najlepiej te terminy na język polski przetłumaczyć).

Wszystkich zainteresowanych serdecznie zapraszam,
Bogumił

Members are also interested in