Saya tahu bahwa mereka diimplementasikan dengan sangat tidak aman di C / C ++. Tidak bisakah mereka diimplementasikan dengan cara yang lebih aman? Apakah kerugian makro benar-benar cukup buruk untuk melebihi kekuatan besar yang mereka
Makro digunakan untuk membuat urutan instruksi komputasi tersedia bagi pemrogram sebagai pernyataan program tunggal, membuat tugas pemrograman tidak terlalu membosankan dan tidak terlalu rentan terhadap kesalahan. [
Saya tahu bahwa mereka diimplementasikan dengan sangat tidak aman di C / C ++. Tidak bisakah mereka diimplementasikan dengan cara yang lebih aman? Apakah kerugian makro benar-benar cukup buruk untuk melebihi kekuatan besar yang mereka
Preprosesor C dilampirkan ke C, tetapi memiliki sintaks yang sama sekali berbeda dari bahasa utama: spasi putih signifikan secara sintaksis (ujung garis mengakhiri pernyataan, celah setelah makro menentukan awal daftar pengganti) blok berbasis kata kunci alih-alih blok menguatkan, elifbukanelse...
Dari perbandingan yang berbeda antara templat C ++ dan C # / Java generics seperti ini- /programming/31693/what-are-the-differences-between-generics-in-c-and-java-and-templates-in-c/31929#31929 Saya mendapat persepsi bahwa, template C ++ diimplementasikan oleh beberapa jenis preprocessing...
Common Lisp memungkinkan Anda untuk menulis makro yang melakukan transformasi sumber apa pun yang Anda inginkan. Skema memberi Anda sistem pencocokan pola higienis yang memungkinkan Anda melakukan transformasi juga. Seberapa berguna makro dalam praktik? Paul Graham mengatakan dalam Beating the...
Saya belajar Skema dari SICP dan saya mendapat kesan bahwa sebagian besar dari apa yang membuat Skema dan, terlebih lagi, LISP khusus adalah sistem makro. Tetapi, karena makro diperluas pada waktu kompilasi, mengapa orang tidak membuat sistem makro yang setara untuk C / Python / Java / apa pun?...
Saya membaca 'The Standard C Library' oleh PJ Plauger yang sangat menarik. Buku ini menjelaskan tidak hanya bagaimana MENGGUNAKAN perpustakaan tetapi juga bagaimana itu diterapkan. Saya telah selesai membaca ctype.hbagian dan di header fungsi dinyatakan sebagai fungsi makro DAN. Sebagai...
Seperti yang ada saat ini, pertanyaan ini tidak cocok untuk format tanya jawab kami. Kami berharap jawaban didukung oleh fakta, referensi, atau keahlian, tetapi pertanyaan ini kemungkinan akan mengundang debat, argumen, polling, atau diskusi panjang. Jika Anda merasa bahwa
Saya mencoba mempelajari beberapa LISP dan saya telah membaca banyak tentang pentingnya makro LISP jadi saya ingin mendapatkan pengalaman kerja dengan mereka. Bisakah Anda menyarankan area aplikasi praktis yang akan memungkinkan saya untuk menggunakan makro untuk memecahkan masalah dunia nyata,...
Ketika mencari dekorator Python seseorang membuat pernyataan, bahwa mereka sekuat macro Lisp (terutama Clojure). Melihat contoh-contoh yang diberikan dalam PEP 318 bagi saya seolah-olah itu hanya cara mewah untuk menggunakan fungsi-fungsi tingkat tinggi lama yang biasa di Lisp: def...
Katakanlah saya ingin memiliki beberapa jenis pesan keluaran dalam kode saya. Salah satunya adalah DEBUG, yang dicetak saja, ketika kode dikompilasi dalam mode Debug. Biasanya saya harus menulis sesuatu seperti #ifdef DEBUG std::cout << "Debug message" << std::endl; #endif yang...
Saya telah membaca tentang perpustakaan yang ditulis orang untuk bahasa seperti Java dan C # yang menggunakan tenun kode byte untuk melakukan hal-hal seperti panggilan fungsi intersep, memasukkan kode logging, dll. Saya juga membaca di Lisp / Clojure macro di sebuah mencoba untuk lebih memahami...
Saya pernah mendengar bahwa makro Clojure lebih mudah untuk ditulis tetapi tidak dapat diandalkan seperti makro higienis Racket. Pertanyaan saya terdiri dari 2 bagian: Apa bedanya dengan gensymmakro higienis? Apa yang disediakan makro Racket yang tidak dimiliki Clojure? (baik itu keamanan,...
Pelecehan pertama yang muncul di pikiran saya di C adalah: #define if while Tetapi pada saat yang sama sangat berguna dan kuat ketika digunakan dengan benar. Hal serupa terjadi dengan makro Lisp Umum. Mengapa tidak semua bahasa pemrograman mendukung makro seperti ini dan apa alternatifnya?...