الرياضيات: Unevaluated مقابل تأجيل مباراة امسك مقابل HoldForm مقابل HoldAllComplete مقابل الخ الخ

StackOverflow https://stackoverflow.com/questions/1616592

سؤال

وأنا مندهشة من قبل جميع المدمج في وظائف الرياضيات التي ترمي إلى منع التقييم في بعض الطريق: Unevaluated، Defer، Hold، وأكثر من نصف دزينة من النموذج Hold*. وثائق الرياضيات يشرح فقط كل وظيفة في العزلة دون أن يوضح لماذا كنت اختيار واحد أو آخر. يمكن لأي شخص أن تقدم تفسيرا منطقيا لجميع هذه الوظائف؟ كل شيء يبدو وكأنه فوضى معقد بالنسبة لي. فيما كل شيء إلى وحدات الماكرو يسب قد يكون مكانا جيدا للبدء.

ومعظم لغة الرياضيات هو مثير للدهشة مصممة تصميما جيدا ولكن يبدو أن ولفرام رسمت حقا نفسه في مأزق في هذا الجانب. أو أنا يمكن أن يكون في عداد المفقودين شيء.

هل كانت مفيدة؟

المحلول

وهذه هي بنيات صعبة جدا، وأنه من الصعب إعطاء تفسيرات واضحة. فهي ليست بالبساطة التي وحدات الماكرو ليسب (أو، لهذه المسألة، والعلاقة بين QUOTE اللثغة وEVAL). ومع ذلك، هناك جيدة، ومناقشة مطولة المتاحة في شكل من الحديث روبي فيليغاس في عام 1999 "Unevaluated التعبير " على موقع ولفرام ل.

وتم حذف Defer من ذلك الكلام، لأنه هو الجديد اعتبارا من الرياضيات 6.0. انها مثل الكثير HoldForm، إلا أنه عندما يكون الإخراج في الواجهة الأمامية (ولكن ليس نواة العارية) انها جردت بعيدا، وترك التعبير التي يمكن استخدامها كمدخل. وهذا مفيد جدا إذا كنت ترغب في بناء التعابير التي يمكن للمستخدم تحرير وتقييم برمجيا، ويقول في لوحة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top