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


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.