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ł

Related topics

You may also like