Saya membaca tentang LISP.
Saya mengerti bagaimana notasi awalan bekerja pada tingkat tertentu, tetapi saya bertanya-tanya apakah ada trik untuk membuatnya intuitif.
Saya membaca tentang LISP.
Saya mengerti bagaimana notasi awalan bekerja pada tingkat tertentu, tetapi saya bertanya-tanya apakah ada trik untuk membuatnya intuitif.
Jawaban:
Membacanya secara mental dari kiri ke kanan sebagai bahasa lisan dengan kata kerja yang tepat dapat membantu. Misalnya (+3 2) dapat berupa "tambah tiga dan dua". Dalam kasus yang lebih umum, Anda dapat mengatakan "melakukan $ operasi pada $ operan". Diterapkan pada kasus yang sama: "Lakukan operasi penambahan pada tiga dan dua".
( = 1 2 )
dan( > 4 2 )
Trik? Untuk apa?
Ini belum terasa intuitif untuk Anda karena parser mental Anda belum terbiasa. Ini akan menjadi lebih baik jika Anda hanya menggunakannya dan membacanya berulang-ulang.
Anda bisa memikirkannya sebagai semacam panggilan fungsi:
(operator operand1 operand2 ...)
Tidak ada yang istimewa tentang itu. Jika Anda membebani operator dalam C ++ (dan banyak bahasa lain yang memungkinkannya), Anda sering kali harus mendefinisikan fungsi semacam ini persis seperti itu:
MyClass operator+(MyClass const& x, MyClass const& y);
Banyak bahasa menggunakan campuran awalan, infiks dan bahkan postfix.
Lisp hanya menggunakan awalan saja - secara default. Jika sin (x) intuitif dari matematika, maka (sin x) tidak jauh. Jika pindah (anjing, rumah) adalah panggilan prosedur tradisional, maka di Lisp itu hanya (pindah rumah anjing).
Lisp tidak membuat pengecualian untuk matematika dan memperlakukan +, -, * dan lainnya seperti panggilan fungsi biasa.