Tôi tự hỏi ai có thể giải thích lý do thiết kế đằng sau các tính năng sau đây của autolisp/visual lisp? Đối với tôi, họ dường như bay khi đối mặt với thực hành phần mềm được chấp nhận ... tôi có thiếu cái gì đó không?Bất cứ ai có thể giải thích các quyết định thiết kế đằng sau Autolisp/visual lisp với tôi?
- Tất cả các biến là toàn cầu theo mặc định (tức là trừ khi đặt sau một
/
trong các đối số chức năng) - dữ liệu đọc/ghi từ autocad đòi hỏi đặt công cụ vào một danh sách liên kết với rất nhiều con số kỳ diệu.
10
có nghĩa là tọa độ x/y,90
nghĩa là độ dài của danh sách toạ độ,63
có nghĩa là màu sắc, v.v. Ok bạn có thể lưu trữ chúng trong một số hằng số nhưng điều đó có nghĩa là nhiều hình cầu hơn, và tài liệu khuyến khích bạn sử dụng các số ma thuật trực tiếp. - Lisp là ngôn ngữ kiểu hàm, khuyến khích lập trình bằng cách đệ quy lặp lại, nhưng đệ quy đuôi là afaik không được tối ưu hóa trong hình ảnh lisp dẫn đến ngăn xếp khủng khiếp - trừ khi, tất nhiên bạn lặp lại. Nhưng cú pháp vòng lặp là rất hạn chế; ví dụ. bạn không thể thoát ra khỏi hoặc trả về một giá trị từ một vòng lặp trừ khi bạn đặt một số loại cờ trong điều kiện chấm dứt. Kết quả, mã xấu.
- Nói chung, bạn buộc phải khai báo các biến trên toàn bộ địa điểm bay khi đối mặt với lập trình hàm - vậy tại sao lại sử dụng ngôn ngữ chức năng (-ish)?
"nó có thể có một số" ... nah ", họ" chỉ "lấy" như nó đã được, mà không có sự cho phép của tác giả bị cáo buộc, và không bao giờ bận tâm để cải thiện nó vì sợ không tương thích ngược. –
@Will - Man. Tôi đoán điều đó giải thích nó sau đó; bản gốc XLISP là một dự án đồ chơi cho nhà văn, không phải thứ gì đó mà anh ấy đang quảng cáo nghiêm túc. – Inaimathi
Những ngày 1983-1986 không có trước thực hành tuyệt vời ở Lisp, xin lỗi. Vào năm 1986, Lisp thường đã có mặt ở đó và gần như cùng một thứ đã được chuẩn hóa vào năm 1994. Nó không phải là trường hợp có tiền lệ, mà là một trường hợp không có manh mối. AutoLisp tồi tệ hơn một số Lisps trong những năm 1960. – Kaz