ইম্যাকস / এলিস্প: হ্যাশ (পাউন্ড, সংখ্যা চিহ্ন, অক্টোথর্প) চিহ্নটি কী জন্য ব্যবহৃত হয়?


102

এটি কি করে?

(add-hook 'compilation-mode-hook #'my-setup-compile-mode)

... এবং এটির চেয়ে আলাদা কি?

(add-hook 'compilation-mode-hook 'my-setup-compile-mode)

উত্তর:


98

এখানে কোন পার্থক্য নেই:

(eq 'my-add #'my-add)

উৎপাদনের t

#একটি সামনে ব্যবহার করা যেতে পারে lambdaঅভিব্যক্তি বাইট-কম্পাইলার যে নিম্নলিখিত অভিব্যক্তি বাইট কম্পাইল হতে পারে ইঙ্গিত, এর জন্য দস্তাবেজ দেখতে বেনামী কার্যাবলী । কিন্তু প্রতীকের ক্ষেত্রে সংকলনের কিছুই নেই।

সাধারণভাবে, এটি মুদ্রিত উপস্থাপনায় বাম কোণ ব্র্যাকেট (<) সহ ব্যবহৃত হয় যা নির্দেশিত হয় যে মুদ্রিত অবজেক্টটি একটি বিবরণ (তবে পড়তে পারে না)। উদাহরণ স্বরূপ:

#<buffer foo.txt>

এটি বৃত্তাকার কাঠামোগত প্রতিনিধিত্ব করতে পাঠকের দ্বারা নির্মিত নির্মাণগুলিতেও ব্যবহৃত হয়। বিজ্ঞপ্তি অবজেক্টের জন্য পঠন সিনট্যাক্সের জন্য ডকগুলি দেখুন ।

এবং তারপরে আপনার পূর্ণসংখ্যার জন্য বেসটি চিহ্নিত করার জন্য এটির ব্যবহার রয়েছে , যেমন #x2c -> 44।

আরও আমি নিশ্চিত।


12
এই নিবন্ধ অনুসারে , #একাকী প্রতীক প্রয়োগ করার একটি ভাল কারণ হ'ল সংকেতটি অপরিজ্ঞাত থাকলে সংকলন সময়ে ডায়াগনস্টিকগুলি পাওয়া।
— আজকের

3
এটি একেবারেই সত্য নয় যে "প্রতীকের ক্ষেত্রে সংকলনের মতো কিছুই নেই।" বাইট সংকলকটি # 'গাড়িটিকে বোঝায় যার অর্থ "আমি সর্বদা` foo' ফাংশনটি উল্লেখ করছি, প্রতীক foo নয়। " এটি তখন বাইট-সংকলিত আউটপুটে ফু-র সংজ্ঞাটি ইনলাইন করতে পারে। : (সম্পাদনা নাঃ, যে আসলে ভুল # প্রতীক 'প্রতীক বাইট-কম্পাইল ছাড়া ভিন্নভাবে হবে না' - এটা শুধু অভিপ্রায় একটি মার্কার আছে।।)
— জোনাথন Tomer

11
সম্ভবত এখনও উল্লেখ করে যে সিন্টেক্সিকভাবে 'symbolপ্রতিনিধিত্ব করে (quote symbol)এবং #'symbolউপস্থাপন করে (function symbol)।
— ট্রিপলি

27

হওয়া উচিত-বিস্তৃত তালিকা ইমাস লিস্প রেফারেন্স সূচকের শীর্ষে পাওয়া যাবে ।

সম্পাদনা : বা আরও সহজলভ্যভাবে, ইমাসের মধ্যে থেকেই:

  • M-x info RET (তথ্য ব্রাউজার খুলুন)

  • d m elisp RET (এলিজপ ম্যানুয়ালটি খুলুন)

  • I # RET( #সূচকের জন্য এন্ট্রি তালিকা)


25

হ্যাক করার সময় আমি যে কিছু পেয়েছি তার মধ্যে হ্যাশটির অর্থ কী তা অনুসন্ধান করার সময় আমি এই প্রশ্নটি পেয়েছি mode-line-format:

#("-%-" 0 3
  (help-echo "Display as tooltip when mouse hovers or with display-local-help."))

যা স্ট্রিংয়ে পাঠ্য বৈশিষ্ট্যের জন্য ব্যবহৃত একটি ফর্ম্যাট যেখানে:

  • "-%-", পাঠ্যকে যথাযথ করতে হবে: একটি ড্যাশ এবং একটি %-কনস্ট্রাক্ট যার ফলে "মোড লাইনের অবশিষ্ট অংশগুলি পূরণ করার জন্য যথেষ্ট পরিমাণে ড্যাশ" হয় যার ফলশ্রুতি বিখ্যাত ইমাস রয়েছে ------।
  • 0, প্রথম অক্ষর যার উপরে পাঠ্যের বৈশিষ্ট্য প্রয়োগ করা হয়।
  • 3গত চরিত্র যার উপর টেক্সট বৈশিষ্ট্য প্রযোজ্য অর্থাত সমগ্র "-%-"।
  • (help-echo "..."), তার সম্পত্তি হিসাবে একটি সম্পত্তি এবং একটি স্ট্রিং।

এটি propertizeফাংশন দিয়ে তৈরি করা যেতে পারে :

(propertize "Hover over me!" 'help-echo '"congratulations!")

("োকান (যথাযথভাবে "আমার উপরে উঠান!" "সহায়তা-প্রতিধ্বনি" "অভিনন্দন!"))

যেমন হবে #("Hover over me!" 0 14 (help-echo "Congratulations!")):

ছোট উদাহরণ।

আপনি যদি হরফ লক মোড ব্যবহার করেন তবে buffer-substringকমান্ডটি ব্যবহার করে এরকম কিছু তৈরি হতে পারে:

(buffer-substring 1 28) ; First 27 characters in the current buffer
 ⇒ #(";; This buffer is for notes"
     0 3
     (fontified t face font-lock-comment-delimiter-face)
     3 27
     (fontified t face font-lock-comment-face))

সুতরাং আপনি কিছু তৈরি করতে পারে:

একাধিক বৈশিষ্ট্যের জন্য সংশ্লিষ্ট যথাযথ কর্ম দেখানো হচ্ছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.