Câu trả lời:
Đúng. Từ các tính năng được đặt tên (nhấn mạnh của tôi):
Tên tính năng là ký hiệu đại diện cho tập hợp các hàm, biến, v.v ... Tệp xác định chúng sẽ cung cấp tính năng này. Một chương trình khác sử dụng chúng có thể đảm bảo chúng được xác định bằng cách yêu cầu tính năng này. Điều này tải tập tin định nghĩa nếu nó chưa được tải.
Để yêu cầu sự hiện diện của một tính năng, hãy gọi
requirevới tên tính năng làm đối số.requirenhìn vào biến toàn cụcfeaturesđể xem tính năng mong muốn đã được cung cấp chưa. Nếu không, nó tải tính năng từ tệp thích hợp . Tập tin này nên gọiprovideở cấp cao nhất để thêm tính năng nàyfeatures; nếu nó không làm như vậy,requirebáo hiệu một lỗi .
Có, với điều kiện là mã trong helm.elhoặc helm.elctôn trọng quy tắc mà nó phải gọi (provide 'helm). Cuộc gọi (provide 'helm)đánh dấu biểu tượng helmlà một tính năng được tải và điều này khiến cuộc gọi thứ hai (require 'helm)không làm gì cả.
Nếu gói được tải không gọi providethì requirebáo hiệu lỗi và tính năng không được đánh dấu là đã tải, do đó, cuộc gọi thứ hai (require 'helm)sẽ thử tải lại (và thường thất bại lần nữa vì lý do tương tự).