ทำไม elisp ไม่มี namespaces?
ถาม:ทำไมเอลลิสจึงไม่มีเนมสเปซและเราจะหามาได้อย่างไร Elisp ไม่มีเนมสเปซอื่นนอกจากโกลบอลซึ่งนำไปสู่การเขียนโค้ดของการเติมคำนำหน้าฟังก์ชันโกลบอลตัวแปรและค่าคงที่ทั้งหมดด้วยคำนำหน้าที่ไม่ซ้ำใคร นอกเหนือจากปัจจัยความน่ารำคาญใจแล้วมันยังทำให้ฉันกลายเป็นประเด็นที่เดือดดาลจาก 1) จำนวนไลบรารีและแพ็คเกจที่ยิ่งใหญ่และ 2) การมีอยู่ของฟังก์ชันและตัวแปรดั้งเดิมที่ไม่เคารพต่อคำนำหน้าหรือ มีนิสัยแปลก ๆ พอสมควรว่าไม่มีตัวเลือกคำนำหน้าดี ๆ ที่พวกเขาสามารถใช้ได้ นอกจากนี้ยังหมายถึงความพยายามเป็นระยะ ๆ ในการหาเหตุผลเข้าข้างตนเองรหัสเก่า (เช่นเดียวกับการเปลี่ยนจากclเป็นcl-lib) เป็นจำนวนงานที่ไม่สำคัญ (แม้ว่าฉันจะดีใจในการทำความสะอาด แต่ฉันก็ยังขาดน้ำตาทุกครั้งที่พิมพ์อะไรเช่นนี้cl-find) ฉันออกไปเดินเล่นรอบ ๆ เพื่อดูว่าฉันจะรู้ได้ไหมว่าทำไมเอลลิสยังคงไม่มีเนมสเปซหลังจากใช้งานไปหลายสิบปี แต่รู้สึกประหลาดใจเล็กน้อยที่การเก็บเกี่ยวเล็กน้อย หน้าวิกิพีเดียใน namespacesค่อนข้างสั้น Nic Ferrierมีการแก้ไขปัญหาอีกต่อไปเล็กน้อยและมีหัวข้อล่าสุดเกี่ยวกับemacs-develเกี่ยวกับเรื่องนี้เช่นกัน มีเธรดสแต็คโอเวอร์โฟลว์เก่าจากปี 2010 ที่กล่าวถึงความเป็นไปได้ในการใช้มาโครในการติดตั้งเนมสเปซ ตัวอย่างของวิธีการแมโครอื่นสามารถพบได้ที่นี่ มีการใช้งานอย่างน้อยสอง ( ที่นี่และที่นี่พร้อมคำอธิบายของหลังที่นี่) ออกไปที่นั่น แต่พวกเขาไม่ได้เห็นกิจกรรมมากนักเป็นเวลาสองปีและฉันไม่ได้ทำงานในห้องสมุดใด ๆ ที่ใช้พวกเขา ฉันคิดว่าถ้าการเพิ่มเนมสเปซเป็นเรื่องง่าย ดังนั้น: อะไรคืออุปสรรคทางเทคนิคในการเพิ่มเนมสเปซลงใน elisp การเพิ่มเนมสเปซทำลายรหัสที่มีอยู่จำนวนมากหรือไม่ ฟังก์ชั่นนี้เป็นบางสิ่งที่จำเป็นต้องเป็นออร์แกนิกเป็นเอลิค (เปลี่ยนล่ามเอง) หรือมันสามารถสร้างขึ้นมาจากด้านบนผ่านมาโครได้หรือไม่?