سؤال

أنا أبحث على منهج لغتي علوم الكمبيوتر النظريه الصف و داخل عنوان سياق مجانا قواعد النحو وهو يسرد "إغلاق خصائص".لقد بحثت من خلال كتاب عن هذا الموضوع و وجدت القليل جدا.قليلا فإنه لا يكون قليلا فوق رأسي في لحظة (أنا لم أخذ الدورة حتى الآن) ولكن أنا أفهم قليلا.

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

(أكثر قليلا من السياق:أنا أكتب رسالة إلى الأستاذ يسأل إذا كان الحال يمكن أن تنتقل إلى روبي أو الثعبان من بيرل.إن هذه المفاهيم هي ذات الصلة, التي يمكن أن تكون سبب آخر يجب علينا استخدام روبي على بيرل.)

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

المحلول

مصطلح "إغلاق" هو استخدام مجموعة متنوعة من الطرق ، تتبع معظمها تعود إلى المفهوم الرياضي من الانتهاء ، في بعض معانيها.

  • المشغل هو "إغلاق أكثر من" مجموعة من القيم إذا كان تطبيق هذا المشغل إلى القيم من مجموعة تنتج دائما قيمة من مجموعة معينة.على سبيل المثال, بالإضافة مغلق على الاعداد الصحيحه ، لكن شعبة لا (4 / 2 هو جزء لا يتجزأ ، ولكن 5 / 2 ليس).ذلك بالإضافة إلى الأعداد الصحيحة بطريقة أو بأخرى "كاملة" بمعنى أن شعبة لا.

  • إن "متعدية" إنهاء علاقة "يكمل" يتعلق بما يلي (كل شيء ممكن) تطبيقات متعددة.حيث اليومية ، فإن مفهوم "هو سليل" هو متعدية إغلاق العلاقة "طفل".

  • وظيفية "إغلاق" هو "الانتهاء" من قبل مثلا ، تحديد كيفية المتغيرات الحرة هي التي يتعين حلها.في الزائفة رمز التعبير:

    bump = function(x) (x + y)
    

    x هو حجة bump, لكن يبدو أن التعريف ترك "فتح" مسألة حل y.من ناحية أخرى, إذا كان علينا أن نحدد:

    bumper = function(y) (function(x) (x + y))
    

    ثم الاحتجاج bumper ترجع الدالة الذي يضيف الأصلي حجة bumper إلى إنشاء وظيفة حجة ، بحيث:

    add3 = bumper(3)
    

    ما يعادل تحديد:

    add3 = function(x) (x + 3)
    

    متداخلة التعريف "مغلقا" (أو الانتهاء من) المتغيرات المتاحة في نقطة تعريفه.

في الواقع استخدامات "إغلاق" قبل كل شيء يجب مختلفة معان محددة, و للوهلة الأولى تبدو غير ذات صلة ، ولكن هناك خفية وراء هذه العلاقة.

نصائح أخرى

وخاصية إغلاق مثل هذا: إذا L و M لغات خالية من السياق، حتى ذلك الحين هو L | M. إغلاق وظيفة هي وسيلة لتنفيذ وظائف من الدرجة الأولى. لذلك لا، لديهم الكثير جدا أن تفعل مع بعضها البعض لا شيء.

وماذا يحمل نفس الاسم، ثم؟ وإغلاق وظيفة هو 'مغلقة على' متغيراته الحرة:

def adder(n): return lambda m: n + m

وهنا n هو متغير خالية من امدا. اسم يؤكد هذا ليسب أصلا <م> لا قريبا على المتغيرات حرة - انها تريد أخذ قيمتها من أي ملزمة كان على كومة عندما تم استدعاء الدالة الداخلية

وإغلاق للعقارات في الرياضيات قليلا أكثر وضوحا: إذا تم إغلاق مجموعة تحت العملية، ثم تطبيق هذه العملية ضمن تلك المجموعة لن يأخذك للخروج منه. إذا قمت بإضافة الأعداد الصحيحة، ما تحصل عليه هو لا يزال عدد صحيح.

وداريوس هو الصحيح. "خصائص إغلاق" لا علاقة لها "إغلاق وظيفة" لا شيء. هناك فقط الكثير من الكلمات ليرحل: - (

ويتم تطبيق فكرة خصائص إغلاق جميع أنحاء علوم الكمبيوتر، ولكن يتم تطبيقه الكثير لفئات مختلفة من اللغات. فئات مختلفة من لغات مهمة لأنك بحاجة إلى التكنولوجيا المختلفة لمسح أو التعرف على الكلام. على سبيل المثال، يمكن أن التعابير العادية اقول لكم اذا كان لديك كلمة محجوزة، لكنها لا يمكن أن أقول لكم إذا كان لديك تعبير مع أقواس متوازنة --- لذلك كنت في حاجة الى قواعد خالية من السياق.

والناس مهتمون بشكل عام سواء إذا كنت تأخذ الناطقة معين، وكنت تتقاطع أو الاتحاد مع لغة أخرى، أو ببساطة تكمل اللغة، لا تحصل لغة أخرى في نفس الفئة. على سبيل المثال، هل من الممكن أن أكتب تعبير عادي يطابق تماما تلك الرموز التي يتم لا كلمات محجوزة؟ يمكننا الإجابة ب "نعم" لغات العادية لا تعمل تحت مكملا، وهذا هو، وتكملة للغة العادية هو في حد ذاته اللغة العادية مدوية. وهذا مثال من خاصية الإغلاق. عادة ما الدليل على بناء، وهذا هو، وليس فقط أنها لا اقول لكم ان هناك <م> موجود تعبير عادي واصفا كل الرموز التي لم يتم الكلمات المحجوزة، دليلا على الملكية إغلاق سوف اقول لكم كيفية <م > العثور على مثل هذا التعبير العادية.

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