Publikasi tentang topik tersebut 'lisp'


Memahami Kekuatan LISP
Paul Graham menggambarkan LISP sebagai titik konvergensi untuk semua bahasa pemrograman. Pengamatannya adalah seiring dengan semakin matangnya bahasa, rata-rata bahasa terus menurun menuju LISP. Oleh karena itu memahami LISP adalah memahami model dasar pemrograman modern. Yang lain memuji LISP sebagai kebutuhan untuk menjadi programmer yang lebih baik. Eric Raymond lebih jauh mengatakan bahwa memahami LISP adalah “pengalaman pencerahan yang mendalam.” Untuk mencari pemahaman ini,..

Pertanyaan tentang topik tersebut 'lisp'

skema dan atur!
Bagaimana cara mengubah nilai variabel melalui fungsi yang menggunakan parameter lambda? Yaitu: ;;definitions (define test "fails") (define (experiment input) (set! input "works")) ;;interactions > test "fails" > (experiment test) >...
1957 dilihat
schedule 13.01.2024

Memunculkan elemen dari daftar asosiasi di cadel (elisp)
Saya sedang mencari cara untuk "memunculkan" elemen dari daftar asosiasi, dengan kata lain asosiasi "destruktif": (setq alist '((a . 1) (b . 2)) (assoc-pop 'a alist) ;; -> (a . 1) ;; alist -> ((b . 2)) Apakah ada fungsi di elisp...
534 dilihat
schedule 28.10.2023

Perbedaan antara (loop for) dan (loop :for) di Common Lisp [duplikat]
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...
152 dilihat
schedule 21.12.2023

Mengapa makro yang menggunakan let expand berbeda dengan makro yang tidak menggunakan let expand?
Saya baru mengenal Lisp dan saya membaca Let Over Lambda karya Doug Hoyte dan dia menyajikan makro nif Paul Graham di Bab 3. Saya bermain-main dengan itu dan membuat dua makro ini: (defmacro niffy (expr pos zero neg) `(cond ((plusp ,expr)...
108 dilihat
schedule 10.01.2024

Dapatkan kebalikan dari daftar di dalam fungsi yang mengembalikan daftar [duplikat]
Jadi saya harus membalikkan elemen di bawah indeks ganjil. Saya telah menulis sebuah fungsi untuk memberi saya elemen indeks yang aneh tetapi saya tidak yakin bagaimana cara mengembalikannya secara terbalik. Saya harus melakukan ini dalam satu...
218 dilihat
schedule 28.12.2023

rekursi clojure membuat daftar
((fn foo [x] (when (> x 0) (conj (foo (dec x)) x))) 5) Untuk kode ini hasilnya [5 4 3 2 1] Kenapa tidak [1,2,3,4,5]? Saya melihat kita melakukan conf dari hasil panggilan foo rekursif dengan sebuah nilai. Karena menurutku seharusnya 1 2 3 4...
163 dilihat

Racket - Filter bilangan bulat genap dan ganjil ke dalam dua daftar terpisah
Fungsi harus mengambil daftar bilangan bulat dan mengembalikan daftar yang berisi dua subdaftar -- yang pertama berisi bilangan genap dari daftar asli, yang kedua berisi bilangan ganjil. Kode saya menyelesaikan pekerjaannya, tetapi jika saya...
736 dilihat
schedule 06.11.2023

LISP Tulis fungsi yang disebut cut-in-half yang menerima daftar dan membuat daftar baru yang elemennya adalah paruh pertama dan kedua
Saya mengalami masalah dengan fungsi ini. pertama-tama kita ditanya "Tulis fungsi cadel yang mengambil daftar dan bilangan bulat n, dan mengembalikan n elemen pertama dari daftar, sebagai daftar baru. Jika n kurang dari 1, ia mengembalikan NIL. Dalam...
838 dilihat
schedule 13.11.2023

Mengganti operator khusus menggunakan MACROLET?
Saya mencoba mengganti IF secara lokal (tujuannya adalah untuk menyematkan DSL). Perilakunya benar-benar membuatku bingung. Di SBCL: (macrolet ((if (x) x)) (if 'x)) ; => X (macrolet ((if (x) x)) (let ((x 2)) (if 'x))) ; =>...
59 dilihat
schedule 20.12.2023