मैं emacs init.el
(Emacs 24.3) में संकुल लोड करने पर परीक्षण कर रहा हूं। पैकेजों को स्वचालित रूप से लोड करने के लिए के लेखक द्वारा मैंने a blog का पालन किया, और कोड को नीचे init.el
में नीचे कॉपी किया।emacs: प्रतीक की फ़ंक्शन परिभाषा शून्य है: लूप
Symbol's function definition is void: loop
किसी कृपया समझा सकते हैं कि कैसे कोड तय करने के लिए: हालांकि, मैं loop
समारोह/प्रतीक, जो कहते हैं के बारे में एक त्रुटि संदेश मिला?
मैंने इंटरनेट पर चारों ओर खोज की है, और ऐसा लगता है कि loop
cl-lib
में एक मैक्रो है। मेरा अनुमान है कि loop
की परिभाषा गुम है, और मैंने कोड में दिखाए गए अनुसार (require 'cl-lib)
जोड़कर समस्या को ठीक करने का प्रयास किया है, लेकिन त्रुटि बनी हुई है। समान त्रुटि संदेशों पर अन्य SO प्रश्न हैं, उदाहरण: ELisp: cl-loop for "Symbol's value as variable is void", Symbol's function definition is void: declare-function। लेकिन त्रुटि संदेश क्या गुम हैं, इस पर अलग हैं, और उत्तर ज्यादातर वैकल्पिक मार्गों का सुझाव देते हैं, जैसे एमएक्स के नए संस्करण का उपयोग करना।
- कोड -
(require 'package)
(add-to-list 'package-archives
'("melpa-stable" . "http://stable.melpa.org/packages/") t)
(package-initialize)
;;; check & load packages
(defvar prelude-packages
'(haskell-mode)
"A list of packages to ensure are installed at launch.")
;;(require 'cl-lib) ;debug
(defun prelude-packages-installed-p()
(loop for p in prelude-packages
when (not (package-installed-p p)) do (return nil)
finally (return t)))
(unless (prelude-packages-installed-p)
;; check for new packages (package versions)
(message "%s" "Emacs Prelude is now refreshing its package database...")
(package-refresh-contents)
(message "%s" " done.")
;; install the missing packages
(dolist (p prelude-packages)
(when (not (package-installed-p p))
(package-install p))))
(provide 'prelude-packages)
;;; end load packages
इससे मदद मिल सकती है: (Emacs 24.3.1): लूप 'cl.el 'में' cl-loop 'के लिए उपनाम है। और सीएल-लूप 'cl-macs.el 'में एक लिस्प मैक्रो है। सी-एच एफ पाश करो। – aartist