• Emacs Lisp, Emacs को विस्तारित करने वाली एक प्रोग्रामिंग भाषा है, जो उपयोगकर्ताओं को Emacs को व्यक्तिगत बनाने और अधिक दक्षता से इस्तेमाल करने में मदद करती है
  • Emacs Lisp हर काम को function call के ज़रिए करता है, और उपयोगकर्ता key binding या commands के माध्यम से functions को interactive तरीके से चला सकते हैं
  • Emacs Lisp के functions input लेते हैं और output लौटाते हैं, और उनके side effects भी हो सकते हैं जो environment को प्रभावित करते हैं
  • buffer को data structure की तरह इस्तेमाल किया जाता है, और text properties तथा buffer-local variables के ज़रिए कई तरह के काम किए जा सकते हैं
  • Emacs Lisp lists और symbols का उपयोग करके code structure बनाता है, और partial evaluation तथा macros के ज़रिए code को विस्तारित किया जा सकता है

Emacs Lisp Elements

Emacs Lisp प्रोग्रामिंग भाषा की बड़ी तस्वीर

  • Protesilaos Stavrou द्वारा लिखी गई यह पुस्तक Emacs Lisp प्रोग्रामिंग भाषा का एक समग्र दृष्टिकोण देती है
  • Emacs एक programmable text editor है, जो Emacs Lisp को interpret करके काम करता है
  • उपयोगकर्ता Emacs को व्यक्तिगत बनाकर एक अधिक कुशल कार्य-परिवेश तैयार कर सकते हैं
  • Emacs Lisp के माध्यम से उपयोगकर्ता दोहराए जाने वाले कामों को automate करके अपनी productivity बढ़ा सकते हैं
  • यह पुस्तक शुरुआती और उन्नत, दोनों तरह के उपयोगकर्ताओं के लिए विविध विषयों को कवर करती है

Emacs Lisp evaluation

  • Emacs में होने वाला हर काम Emacs Lisp function calls के माध्यम से किया जाता है
  • उपयोगकर्ता key binding या commands के ज़रिए functions को interactive तरीके से चला सकते हैं
  • Emacs buffer के भीतर Elisp code को evaluate कर सकता है, और विभिन्न commands के माध्यम से code चलाया जा सकता है
  • eval-expression command का उपयोग करके वर्तमान buffer में Elisp code को evaluate किया जा सकता है
  • Emacs अपनी self-documenting सुविधा के माध्यम से अपनी वर्तमान स्थिति की जानकारी देता है

Side effects और return values

  • Emacs Lisp functions input लेते हैं और output लौटाते हैं, और उनके side effects हो सकते हैं जो environment को प्रभावित करते हैं
  • किसी function का return value दूसरे function के input के रूप में इस्तेमाल किया जा सकता है
  • side effects के माध्यम से Emacs की state को नियंत्रित करके इच्छित काम किए जा सकते हैं
  • side effects का सावधानी से उपयोग करने पर Elisp की क्षमता का पूरा लाभ लिया जा सकता है
  • अनुभव के साथ side effects और return values को सही ढंग से संभालने की सहज समझ विकसित की जा सकती है

Data structure के रूप में buffer

  • buffer character sequence के रूप में data को संग्रहीत करता है, और विभिन्न functions buffer positions लौटाते हैं
  • buffer की सामग्री को string के रूप में निकाला जा सकता है, या दो विशेष positions के बीच का substring प्राप्त किया जा सकता है
  • buffer में परिणाम दिखाए जा सकते हैं, या buffer से जुड़े variables सेट किए जा सकते हैं
  • buffer variables के एक bundle की तरह काम करता है, और उसमें buffer-local values हो सकती हैं
  • Emacs windows और frames को भी data structure की तरह इस्तेमाल किया जा सकता है

Text properties

  • text में properties हो सकती हैं, और Emacs Lisp के माध्यम से metadata की जाँच की जा सकती है
  • text properties syntax highlighting जैसे प्रभाव प्रदान करती हैं
  • उपयोगकर्ता describe-char command के माध्यम से cursor की स्थिति पर मौजूद character की properties देख सकते हैं
  • उपयोगकर्ता अपना major mode लिखकर text properties को manually जोड़ सकते हैं
  • text में साधारण characters से अधिक जानकारी हो सकती है

Symbols, balanced expressions, quotation

  • Emacs Lisp एक ऐसी भाषा है जिसमें बहुत सारे parentheses उपयोग होते हैं, जिससे code structure को समझना आसान होता है
  • lists को function call के रूप में evaluate किया जा सकता है या data के रूप में लौटाया जा सकता है
  • यदि list को evaluate नहीं करना हो, तो single quote का उपयोग किया जाता है
  • car और cdr functions list के पहले element और बाकी elements लौटाते हैं
  • Emacs Lisp macros के माध्यम से code को विस्तारित कर सकता है

Lists के भीतर partial evaluation

  • Emacs Lisp code को evaluate किया जा सकता है या उसे वैसे ही उपयोग किया जा सकता है
  • list को आंशिक रूप से evaluate करके केवल कुछ elements का evaluation किया जा सकता है
  • backtick(`) और comma(,) का उपयोग करके list के भीतर विशेष elements को evaluate किया जा सकता है
  • ,@ का उपयोग करके list के बाहरी parentheses को हटाया जा सकता है
  • partial evaluation का उपयोग macros में अधिक सामान्य रूप से होता है

Macros या special forms के भीतर evaluation

  • Emacs Lisp code का मूल मामला वह list है जिसे evaluate किया जाता है या नहीं किया जाता
  • macro एक template system है जिसमें code को दूसरे code में expand किया जाता है और फिर evaluate किया जाता है
  • macro के भीतर quotation को अलग तरीके से संभाला जा सकता है
  • macro code के इरादे को अधिक स्पष्ट रूप से व्यक्त करने और optimization को संभव बनाने में मदद करते हैं
  • macros के माध्यम से code की flexibility और reusability बढ़ाई जा सकती है

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.