পাঠককে সংশোধন করার ফলে নতুন পঠন-সিনট্যাক্স (যেমন #(hash table)
এবং '(quoted)
) প্রবর্তন করা যাবে । অনেক লিস্পের এই ক্ষমতা রয়েছে, তবে এলিস্পের জন্য এই জাতীয় কোনও সুবিধা বিদ্যমান বলে মনে হয় না।
পাঠককে সংশোধন করার ফলে নতুন পঠন-সিনট্যাক্স (যেমন #(hash table)
এবং '(quoted)
) প্রবর্তন করা যাবে । অনেক লিস্পের এই ক্ষমতা রয়েছে, তবে এলিস্পের জন্য এই জাতীয় কোনও সুবিধা বিদ্যমান বলে মনে হয় না।
উত্তর:
সক্রিয় হয় যে ম্যানুয়ালটি বোঝায় যে আপনি আসলে পাঠক ম্যাক্রোগুলি করতে পারবেন না।
মতে পরিশিষ্ট C পোর্টিং প্রচলিত পাতার মর্মর :
পাঠক ম্যাক্রো। কমন লিস্পে দ্বিতীয় ধরণের ম্যাক্রো অন্তর্ভুক্ত যা পৃথক অক্ষরের স্তরে কাজ করে। উদাহরণস্বরূপ, কমন লিস্প একটি পাঠক ম্যাক্রো দ্বারা উদ্ধৃত স্বরলিপি প্রয়োগ করে 'বলা হয়, যেখানে ইমাস লিস্পের পার্সার কেবল উদ্ধৃতিটিকে একটি বিশেষ কেস হিসাবে বিবেচনা করে। কিছু লিসপ প্যাকেজগুলি নিজের জন্য বিশেষ সিনট্যাক্স তৈরি করতে পাঠক ম্যাক্রো ব্যবহার করে, যা ইমাস পার্সার পড়ার পক্ষে অক্ষম।
syntax.c
স্পষ্টতই এটি করা যেতে পারে তবে প্রচুর কাজের জন্য প্রস্তুত prepare (বা করবেন না কারণ আমি কিছু সপ্তাহান্তে এটি মোকাবেলা করব ;-)।
(defvar *orig-read* (symbol-function 'read))
(defun read (&optional in)
(message "reading from %s" load-file-name)
(funcall *orig-read* in))
(setq load-read-function (symbol-function 'read))
এখন "সমস্ত" যা করা বাকি তা হ'ল একটি সম্পূর্ণ লিস্প রিডার বাস্তবায়ন করা যা এলিস্প যা কিছু করে এবং যা আপনি আরও কিছু চান তা সমর্থন করে। আমি মনে করি এটি defpackage
একটি উদাহরণ হিসাবে সিএল-জাতীয় এবং প্যাকেজ অভ্যন্তরীণ প্রতীক সরবরাহ করতে ব্যবহৃত হতে পারে । এছাড়াও, রেগেক্সপসের জন্য একটি বিশেষ সিনট্যাক্স হ'ল আমি খারাপভাবে যা করতে চাই (বা আরও সঠিকভাবে, কিছু স্ট্রিং সিনট্যাক্স যা ব্যাকস্ল্যাশগুলি ব্যাখ্যা করে না)।
সম্পাদনা করুন: ধারণার বাস্তবায়ন এখানে রয়েছে: https://github.com/mishoo/elisp-reader.el