Dengan Python saya akan melakukan hal berikut untuk memproses file baris demi baris:
with open(infile) as f:
for line in f:
process(line)
Mencoba mencari cara melakukan hal yang sama di elisp (dengan buffer bukan file), saya tidak menemukan cara yang jelas.
(Yang ingin saya selesaikan adalah dua struktur data garis yang dipesan, satu dengan semua garis yang cocok dengan regex, yang lain berisi yang tidak cocok.)
(let ((start (point))) (goto-char (point-max)) (while (> (point) start) ... (forward-line -1)))
?start
danend
merupakan variabel yang ada yang membatasi wilayah tempat kami ingin beroperasi.Saya tidak tahu ada cara idiomatik tapi saya datang dengan ini:
sumber
Saya pikir yang berikut ini sebodoh yang bisa didapat:
EDIT: Ini adalah solusi lain
loop
untuk menggantikannyadolist
, dan yang juga mengklasifikasikan garis berdasarkan apakah mereka cocok dengan ekspresi reguler Anda atau tidak:Jika Anda menetapkan variabel ke output fungsi ini, katakanlah
(setq x (loop ...))
, maka daftar baris yang cocok akan ditemukan di(car x)
, dengan daftar baris yang tidak cocok(cdr x)
.sumber