Saya baru saja melihat jawaban Sylwester untuk pertanyaan ini, dan menurut saya aneh loop memiliki titik dua di mana-mana.
Biasanya, saya akan menulis
(loop for n below 10 do (princ n) (terpri))
alih-alih
(loop :for n :below 10 :do (princ n) (terpri))
Setelah beberapa pengujian, saya melihat bahwa dengan loop pertama, simbol for
, below
dan do
kemudian menjadi bagian dari cl-user (edit : sebenarnya bukan do
, hanya dua lainnya, mungkin karena do
juga makro dalam paket cl), bukan dengan yang kedua. Demikian pula, 'X saja akan menjadi bagian dari cl-user, bukan ':X. Fungsi symbol-package
memberi tahu saya bahwa yang terakhir ada dalam paket kata kunci.
Sekarang, loop pertama, tanpa titik dua, terlihat jauh lebih cantik bagi saya, jadi saya ingin tahu apakah pernyataan sebelumnya merupakan alasan yang baik untuk menggunakan loop kedua. Bahwa simbol-simbol tersebut menjadi "termasuk" dalam paket saat ini terlihat tidak menyinggung, tapi mungkin saya telah mengabaikan konsekuensinya.
Ada ide?
(loop :for element :below below-average :counting (> element above-average))
lebih mudah dibaca dengan benar daripada(loop for element below below-average counting (> element above-average))
- person Sylwester   schedule 13.02.2015