Thỉnh thoảng, chúng tôi muốn xem xét các hàm số System`
nhất định được định nghĩa như thế nào (khi chúng được viết bằng Mathematica). Câu hỏi này là về cách tốt nhất để làm điều đó.Cách tốt nhất để đọc mã của hàm đã được xác định (đặc biệt là từ ngữ cảnh System`) là gì?
điểm cần lưu ý:
Trong couse
ReadProtected
cần phải được loại bỏ đầu tiên.Nội trang thường cần phải được sử dụng ít nhất một lần trước khi chúng được tải vào hạt nhân. Một lời gọi đơn giản thường đủ cho điều này khi chúng có chức năng mở rộng (ví dụ: thông qua các tùy chọn)?
Information
(??
) cung cấp định nghĩa theo định dạng khó đọc (không có thụt đầu dòng và tất cả các tên ngữ cảnh riêng được thêm vào trước). Cách tốt nhất để loại bỏ tên ngữ cảnh là gì và lấy mã được định dạng?Một ý tưởng để loại bỏ các ngữ cảnh nhất định là
Block[{$ContextPath = Append[$ContextPath, "SomeContext`Private`"], Information[symbol]]
. Mã có thể được định dạng tự động bằng cách sử dụng Workbench. Vẫn còn một số vấn đề, ví dụ:Information
không trích dẫn chuỗi, ngăn không cho mã có thể được sao chép vào Bàn làm việc.
Nói chung, tôi quan tâm đến cách mọi người làm điều này, phương pháp họ sử dụng để tạo mã nội dung dễ đọc nhất có thể.
Trường hợp sử dụng: Ví dụ, gần đây tôi đã đào vào mã số RunThrough
khi tôi phát hiện ra rằng nó không hoạt động trên Windows XP (hóa ra không báo giá tên của tệp tạm thời khi đường dẫn đến chúng chứa không gian).
Cập nhật:It appears rằng có từng là một chức năng cho các định nghĩa in ấn mà không bối cảnh prepended, Developer`ContextFreeForm
, nhưng nó không làm việc nữa trong các phiên bản mới hơn.
Bạn có thể loại bỏ các tên bối cảnh riêng bằng cách nhập ngữ cảnh trước khi gọi '?? '. –
cah