আমি পরীক্ষা করতে চাই যে কিছু (বলুন, বর্তমান) বাফার কোনও ফাইল পরিদর্শন করছে কিনা। আমি বলতে পারি:
(if (buffer-file-name) ...)
তবে এটি খুব মার্জিত নয় বলে মনে হচ্ছে - আমি যা আগ্রহী তা হ'ল বুলিয়ান মান, প্রশ্নে বাফারের আসল নাম নয় । যদি buffer-file-name
ফাংশনটি এলিস্পে লেখা থাকে তবে এটির উত্সটি কী ব্যবহার করে তা সন্ধান করতে আমি এটির উত্স সন্ধান করতে পারি - তবে এটি সিটিতে লেখা ছিল এবং আমি ইমাস সূত্রগুলি ইনস্টল করতে পারার পরেও আমি আশঙ্কা করছি যে আমি কোনও এলিস্পের নামটি খুঁজে না পাব afraid ফাংশনটির জন্য যা আমি সেখানে যাই হোক না কেন পরে যাচাই করি।
আমার যা প্রয়োজন তা হ'ল আমি বর্তমান বাফারের ফাইলটির নামের উপর ভিত্তি করে একটি ডিরেক্টরি তৈরি করতে চাই এবং বর্তমানে আমি এটি কম-বেশি করছি:
(make-directory (if (buffer-file-name) (file-name-base) "default-dir"))
সুতরাং, এটি করার এলিস্প-আইডিয়োম্যাটিক পদ্ধতিটি কী হবে?
(and (buffer-file-name) t)
অদ্ভুত লাগছে।
(if (buffer-file-name) ... )
এটি মার্জিত না মনে করেন , তবে আপনি খুব দীর্ঘকাল ধরে এলিস্পে কোডিং করছেন না। এটি এখান থেকে কেবল কৃপণতা পায়।
buffer-file-name
সত্যই ব্যবহার করতে আপত্তি করছেন তা নিশ্চিত নন , এটি করার সঠিক উপায় (যদি আপনি সত্যিই চান তবে এটিt
করুন(and (buffer-file-name) t)
কিন্তু এটি অশুভ আইএমও)। এর বাস্তবায়নটিfilename
বাফার সি স্ট্রাক্টের ক্ষেত্রটি পড়ছে , যা যাইহোক এলিসপ থেকে সরাসরি অ্যাক্সেসযোগ্য নয়। শেষ পর্যন্ত, এটি কেবল পয়েন্টার যা শূন্য বা না হয়।