الرياضيات: Unevaluated مقابل تأجيل مباراة امسك مقابل HoldForm مقابل HoldAllComplete مقابل الخ الخ
-
06-07-2019 - |
سؤال
وأنا مندهشة من قبل جميع المدمج في وظائف الرياضيات التي ترمي إلى منع التقييم في بعض الطريق: Unevaluated
، Defer
، Hold
، وأكثر من نصف دزينة من النموذج Hold*
. وثائق الرياضيات يشرح فقط كل وظيفة في العزلة دون أن يوضح لماذا كنت اختيار واحد أو آخر. يمكن لأي شخص أن تقدم تفسيرا منطقيا لجميع هذه الوظائف؟ كل شيء يبدو وكأنه فوضى معقد بالنسبة لي. فيما كل شيء إلى وحدات الماكرو يسب قد يكون مكانا جيدا للبدء.
ومعظم لغة الرياضيات هو مثير للدهشة مصممة تصميما جيدا ولكن يبدو أن ولفرام رسمت حقا نفسه في مأزق في هذا الجانب. أو أنا يمكن أن يكون في عداد المفقودين شيء.
المحلول
وهذه هي بنيات صعبة جدا، وأنه من الصعب إعطاء تفسيرات واضحة. فهي ليست بالبساطة التي وحدات الماكرو ليسب (أو، لهذه المسألة، والعلاقة بين QUOTE
اللثغة وEVAL
). ومع ذلك، هناك جيدة، ومناقشة مطولة المتاحة في شكل من الحديث روبي فيليغاس في عام 1999 "Unevaluated التعبير " على موقع ولفرام ل.
وتم حذف Defer
من ذلك الكلام، لأنه هو الجديد اعتبارا من الرياضيات 6.0. انها مثل الكثير HoldForm
، إلا أنه عندما يكون الإخراج في الواجهة الأمامية (ولكن ليس نواة العارية) انها جردت بعيدا، وترك التعبير التي يمكن استخدامها كمدخل. وهذا مفيد جدا إذا كنت ترغب في بناء التعابير التي يمكن للمستخدم تحرير وتقييم برمجيا، ويقول في لوحة.