Adakah yang ahli dalam cadel menjelaskan lelucon ini kepada saya? Saya telah membaca beberapa bahasa pemrograman fungsional dan mengetahui bahwa CAR / CDR berarti Isi Alamat / Pengurangan Register tetapi saya masih tidak terlalu mengerti humornya.
Adakah yang ahli dalam cadel menjelaskan lelucon ini kepada saya? Saya telah membaca beberapa bahasa pemrograman fungsional dan mengetahui bahwa CAR / CDR berarti Isi Alamat / Pengurangan Register tetapi saya masih tidak terlalu mengerti humornya.
Jawaban:
Di Lisp, elemen daftar tertaut disebut CONS. Ini adalah struktur data dengan dua elemen, yang disebut CAR dan CDR karena alasan historis. (Beberapa programmer Common Lisp lebih suka merujuknya menggunakan fungsi FIRST dan REST, sementara yang lain menyukai CAR dan CDR karena mereka cocok dengan versi yang telah dikomposisi sebelumnya seperti (CADR x) ≡ (CAR (CDR x)).
Lelucon itu adalah parodi stiker bemper yang terkadang Anda lihat di mobil tua usang yang mengatakan "Mobil saya yang lain adalah Porsche / BMW / dll."
Tanggapan saya terhadap lelucon ini selalu "CAR saya yang lain adalah CADR. CDR sama sekali bukan CAR."
(rplacd a (car a))
itu jelas tidak akan. :) LISP yang umum bukanlah Haskell. Tapi terima kasih atas penjelasannya. +1.
car
is first
". :)
Ya, pasti lelucon pecandu.
Nama-nama itu berasal dari IBM 704, tapi itu bukan lelucon.
Leluconnya adalah (buruk) pelesetan pada "mobil saya yang lain adalah ___." Tapi leluconnya adalah tentang rekursi.
Ketika Anda mengulang / memanipulasi / memilih / memanggil / lebih di cadel, Anda menggunakan kombinasi mobil (elemen pertama dalam daftar) dan cdr (sisa daftar) untuk menyulap fungsi.
Jadi Anda punya mobil, tapi mobil Anda yang lain adalah cdr Anda karena Anda selalu bisa mendapatkan mobil dari cdr karena cdr selalu (dalam rekursi) lebih banyak elemen. Mendapatkan? Tertawa belum?
Anda mungkin harus belajar cadel untuk benar-benar tertawa kecil, atau tidak. Tentu saja, pada saat itu, Anda mungkin akan tertawa terbahak-bahak tanpa alasan yang jelas karena:
Lisp membuatmu gila.
// Datang dari Skema
Skema memiliki sangat sedikit struktur data, salah satunya adalah tupel: '(first . second)
. Dalam hal ini, car
adalah elemen pertama, dan cdr
merupakan yang kedua. Konstruksi ini dapat diperluas untuk membuat daftar, pohon, dan struktur lainnya.
Lelucon itu tidak terlalu lucu.
(first . second)
. Daftar '(first second)
ini terdiri dari dua tupel, seperti ini:(cons first (cons second null))