Tôi bị hoang mang bởi tất cả các hàm Mathematica tích hợp nhằm ngăn chặn việc đánh giá theo một cách nào đó: Unevaluated
, Defer
, Hold
và hơn nửa tá biểu mẫu Hold*
. Tài liệu Mathematica chỉ giải thích từng chức năng một cách đơn giản mà không giải thích tại sao bạn chọn cái này hay cái kia. Bất cứ ai có thể cung cấp một lời giải thích mạch lạc của tất cả các chức năng này? Toàn bộ mọi thứ có vẻ như một mớ hỗn độn phức tạp với tôi. Liên quan đến tất cả các macro Lisp có thể là một nơi tốt để bắt đầu.Mathematica: Unevaluated vs Defer vs Hold vs HoldForm vs HoldAllComplete vs etc etc
Hầu hết ngôn ngữ Mathematica đều được thiết kế rất đáng kinh ngạc nhưng có vẻ như Wolfram đã tự vẽ mình thành một góc trên khía cạnh này. Hoặc tôi có thể thiếu một cái gì đó.