Fungsi operator tertinggal bawaan di Julia

Apakah ada fungsi operator lagging bawaan di julia? Yaitu, fungsi dari bentuk:

lagop(op,array,offset)

yang mengembalikan sesuatu seperti

[array[i + offset] (op) array[i] for i in 1:length(array)-offset]

Untuk perbedaan yang berurutan, ada fungsi diff. Untuk jumlah salah satu karya berikut:

x = collect(1:10)
x[1:end-1]+x[2:end]
[x[i]+x[i+1] for i in 1:length(x)-1]

Apakah ada fungsi umum untuk menyelesaikan tugas seperti ini?


person Richard Border    schedule 22.10.2017    source sumber
comment
lagop(op,array,offset) = [op(array[i + offset], array[i]) for i in 1:length(array)-offset] tidak cukup?   -  person Liso    schedule 22.10.2017
comment
@Liso Ini jelas dapat diterapkan, tetapi dalam beberapa skenario operasi semacam ini ada di mana-mana dan fungsi seperti itu menghemat waktu/meningkatkan keterbacaan. Misalnya, rollapply fungsi di paket R zoo.   -  person Richard Border    schedule 22.10.2017


Jawaban (1)


Anda menyebutkan perpustakaan kebun binatang di R, yang untuk deret waktu. Jika itu kasus penggunaan Anda, Anda akan menemukan kelambatan diterapkan di TimeSeries.jl: http://timeseriesjl.readthedocs.io/en/latest/apply.html#lag Namun, ini mungkin tidak sesuai dengan keinginan Anda.

person Michael K. Borregaard    schedule 23.10.2017
comment
Bukan yang saya inginkan tetapi ini berguna. Sepertinya fitur yang saya cari terlalu mudah diimplementasikan dalam bahasa dasar sehingga tidak layak mendapatkan fungsinya sendiri... - person Richard Border; 15.11.2017