Saya mengerti apa fungsi autoload untuk fungsi (mendaftarkan file untuk memuat ketika fungsi tersebut dipanggil atau string dokumentasinya diambil). Namun, tidak jelas bagaimana menggunakan fasilitas autoload dalam hubungannya dengan variabel dan makro.
Saya punya dua pertanyaan:
Apa yang terjadi ketika paket memiliki parameter, diimplementasikan sebagai variabel yang dapat ditetapkan pengguna, tetapi tidak dimuat secara otomatis? Haruskah variabel seperti itu dimuat secara otomatis? Jika tidak, ternyata variabel tersebut tidak ada, lingkungan Lisp tidak tahu apa-apa tentang mereka, termasuk nilai defaultnya, sampai beberapa fungsi yang dimuat secara otomatis dari paket digunakan (biasanya setelah memuat file konfigurasi), kemudian jika pengguna mengaturnya dalam bukunya. / file konfigurasinya, itu seperti mengatur variabel yang tidak ada. Jika nilai variabel adalah daftar yang tidak kosong dan pengguna menggunakan
push
atauadd-to-list
untuk mengubah nilainya, apa yang sebenarnya terjadi? Apakah nilai default hilang?Apa yang terjadi ketika makro diisi otomatis? Kapan kami harus memuat ulang makro secara otomatis?
setq
diedit (yaitu tidak peduli nilai apa yang mereka miliki sebelumnya) dapat memiliki standar yang ditentukan dalamdefvar
ataudefcustom
bentuk, tetapi dalam kasus daftar yang dapat diperluas oleh pengguna yang terbaik untuk digunakan,eval-after-load
bukan? Juga, kadang-kadang default yang baik adalah baik, bahkan jika mereka mengambil bentuk daftar ;-)