Saturday 30 December 2017

هاسكل تداول نظام


مرحبا بكم في Hackage. Hackage هو أرشيف حزمة المركزية هاسكل s البرامج المصدر المفتوح حزمة الكتاب استخدامه لنشر المكتبات والبرامج الخاصة بهم في حين أن المبرمجين هاسكل أخرى استخدام أدوات مثل كابال تثبيت لتحميل وتثبيت حزم أو الناس الحصول على الحزم عبر ديسترو. This واجهة الويب إلى هاكاج يتيح لك. استعراض الحزم مرتبة حسب الفئة. البحث عن الحزم عن طريق الكلمة الرئيسية في اسم أو description. See ما الحزم التي تم تحميلها مؤخرا. تحميل حزم الخاصة بك إلى هاكيج ملاحظة أنك سوف تحتاج إلى account. Each وتشمل الحزمة. وصف ما يفعله. علامة المعلومات. الملف المعلومات. تحميل غزيبد تاربال. قائمة وحدات في الحزمة. الوثائق حفرة إذا كان متوفرا مع وصلات المصدر. الخطوط التوجيهية لحزم هاكيج. جميع الحزم يجب اتباع سياسة إصدار الحزمة PVP. Packages لا يمكن حذفها، لذلك يجب عليك النظر في تحميل إصدارات جديدة حزم كمرشح حزمة واختبار قبل نشره إلى المؤشر الرئيسي. بالإضافة إلى الصفحة الرئيسية حزمة الحزمة، وهناك عدد قليل من مؤشرات الحزمة الأخرى. المسائل الإدارية. الإبلاغ عن المشاكل. لمشاكل مع حسابات أو أذونات يرجى الاتصال بالمسؤولين عن طريق البريد الإلكتروني at. For البق مع رمز الموقع أو مشاكل استضافة الخادم ، يرجى الإبلاغ عنها في تعقب المسألة لدينا. المساهمة في التنمية. الشفرة هي على جيثب ونحن نرحب سحب طلبات. هناك تذاكر مفتوحة تصف الأخطاء الموجودة والميزات التي نريد أو التي هي في حاجة إلى تحسين مساعدة على أي من هذه يكون موضع تقدير كبير. هناك بعض وثائق المطور والمستخدم على ويث جيثب بما في ذلك دليل سريع للحصول على مثيل الخادم الخاص بك وتشغيلها. يمكنك طرح الأسئلة على القائمة البريدية كابال-ديفيل أو على إيرك في قناة هاكاج على فرينود. يحتوي الخادم الجديد على واجهة برمجة تطبيقات للموقع التي تم إنشاؤها تلقائيا ويهدف هذا أساسا إلى توثيق للأشخاص الذين يعملون مع الخادم، وليس كخريطة موقع موجهة للمستخدم، ولكن قد يكون من المثير للاهتمام أن ه بالضبط ما هو متاح ويشمل هذا الموارد الهامة مثل مؤشر للقراءة الآلية من الحزم المستخدمة من قبل العملاء مثل كبال تثبيت. نصح من قبل و هاسكل المجموعة إهغ الصناعية سعداء جدا أن نعلن أن هاكاج 2 هو الآن تشغيل خادم هاكاج الرسمي. قراءة للحصول على لمحة عامة عن الميزات الجديدة، وتحسينات النظام، وللمزيد من التفاصيل حول كيف يمكن أن تساعد على جعل هاكيج 2 حتى أفضل. دعم من هاسكل الصناعية Group. The إهغ هو كونسورتيوم من الشركات التي تعتمد على هاسكل أعضاء إهغ بتمويل الجهود للحصول على هاكيج 2 تصل إلى ميزة التكافؤ والحصول على استعداد للتحول وقد مولت إهغ هذا الجهد لأنه في حين أن جهد المتطوعين حصلنا على 90 الأولى من الطريق هناك بما في ذلك إضافة عدد من الميزات الجديدة كان لا يزال آخر 90 للقيام به للحصول على إنتاج جاهزة. وقرر أعضاء إهغ لتمويل هاكيج 2 ليس فقط لأنها مواطنة جيدة، ولكن من المصلحة الذاتية المستنيرة هاكاج لديها أكثر من 5000 حزم كتبها أكثر من 1000 بيوب لي بما في ذلك أفضل المطورين هاسكل في العالم هذا هو مورد هائل يدرك أعضاء إهغ أن التحسينات على الأدوات والبنية التحتية التي يستخدمها المجتمع يساعد المجتمع على إنتاج المزيد وأفضل رمز هذا هو فائدة للجميع في المجتمع بما في ذلك المستخدمين التجاريين وتحرص مجموعة إهغ على زيادة عضويتها بحيث يمكن تخصيص المزيد من الموارد لتحسين منصة تطوير هاسكل إذا كانت مؤسستك تعتمد على هاسكل بطريقة ما، فقد ترغب في النظر في الانضمام إلى موقع إهغ لمزيد من التفاصيل أو الاتصال. على الرغم من مساعدة من إهغ في الوصول إلى هذه النقطة، هاكاج هو مشروع المجتمع، ونجاحها يعتمد على المجتمع الحفاظ على وتحسين الخادم الجديد التعليمات البرمجية الآن على جيثب لذلك فمن الأسهل للمساهمة، والآن أن الملقم هو العيش هناك إشباع أكثر فوري للمتطوعين المساهمة الإصلاحات والميزات الجديدة. أسرع شبكة توزيع المحتوى. كما احتياجات المجتمع إنك ريس، هاكاج وأجزاء أخرى من البنية التحتية لدينا تتطلب كميات متزايدة من عرض النطاق الترددي، وانخفاض الكمون، والمزيد من التخزين وحساب الموارد هاكاج يحتوي على رمز مكتوب من الناس في جميع أنحاء العالم، والجهوزية فضلا عن السرعة أهمية قصوى لتجربة المستخدم نظيفة عند تطوير . قد عرضت على المجتمع الوصول غير المحدود إلى كدن الخاصة بهم، مما يسمح لنا لدفع تبس البيانات من خلال نظم الحافة الخاصة بهم، وتوفير الموارد التدريع للخوادم، والحصول على تحليلات في الوقت الحقيقي لجميع المستخدمين والبيانات. ملامح جديدة. على الرغم من أن الأولوية الرئيسية لدينا ميزة التكافؤ حتى نتمكن من التبديل أكثر، وقد ساهم المتطوعين العديد من الميزات الجديدة، بما في ذلك البحث حزمة أفضل، وموضوع موقع جديد، وتحسين الأمن، والقدرة على إصلاح التبعيات حزمة بعد الإفراج عنهم، تشانجيلوغس، واجهة على غرار ريست. انظر صفحة ميزات جديدة لمزيد من التفاصيل حول هذه، بالإضافة إلى تفاصيل الميزات الأخرى التي يتم تنفيذها جزئيا أو هي في حاجة إلى تحسين. لذلك نحن إعادة القيام بهذا التعيين في يوني ولدي حنين خطيرة للقيام بهذه المهمة في هاسكيل في محاكاة ل تداول الأسهم المحرك الوضع هو أن لدينا البيانات القادمة من كسف ونود أن تحليل كل سجل ومعالجته بطريقة معينة تعتمد على مرحلة السوق التي خصصت لتبرير لاستخدام هاسك ليرة لبنانية، هو أن أرى محرك التداول كما system. I الثقيلة وظيفية كان تجربة هاسكيل قبل ولكن فقط تجربة طفيفة، أبدا أي شيء هذا big. We كانوا يريدون لتشغيل الصفحات التي من شأنها استيراد كسفس في طابور من أوامر غير المجهزة ثم يكون البرنامج الرئيسي الوصول إلى هذا الطابور لمعالجة كل أمر ومع ذلك كيف يمكن تحقيق هذا وأنا أعلم في C أنا مجرد إعداد فئة بحيث يمكن الوصول إلى فئة كسفبارزر التي من شأنها أن تعقد الصف غير المجهزة وهذا يعني أيضا أن مؤشر ترابط الاستيراد سيكون تشغيل مستمر من خلال جميع مراحل السوق أو حتى الانتهاء من استيراد ملف كسف. أي توجيهات حول كيفية تحقيق هذا سيكون كبيرا لا تبحث عن السيناريو كتبته تماما، فقط ما هي الأشياء في هاسكيل أود أن ننظر إلى. اسكيد مارس 29 12 في 23 33. المغلقة كما ليس سؤالا حقيقيا من قبل ريتش ميلتون دفليمستر فليكسو مايكل بيتروتا غرافيتون مار 30 12 في 1 45.It s من الصعب معرفة ما هو مطلوب هنا هذا السؤال غامض، غامضة، ناقصة، واسعة جدا، أو لا يمكن الإجابة عليها بشكل معقول في شكلها الحالي للمساعدة في توضيح هذا السؤال حتى يمكن إعادة فتحه، قم بزيارة مركز المساعدة إذا كان هذا السؤال يمكن إعادة صياغتها لتتناسب مع القواعد في مركز المساعدة يرجى تحرير السؤال. تابل المحتويات. لذلك حتى الآن، كنا نتحدث في الغالب عن مفاهيم عالية المستوى هاسكل يمكن أن تستخدم أيضا لبرامج البرمجة على مستوى أدنى فمن الممكن جدا لكتابة البرامج التي تتفاعل مع نظام التشغيل على مستوى منخفض باستخدام Haskell. In هذا الفصل، ونحن نذهب لمحاولة شيء طموح لغة مثل بيرل التي هي صالحة هاسكل، التي نفذت في نقية هاسكل، التي تجعل من السهل شل البرمجة نحن نذهب لتنفيذ الأنابيب، سهلة الاحتجاج الأمر، وبعض الأدوات البسيطة للتعامل مع المهام التي قد يتم خلاف ذلك مع غريب أو سيد. وحدات متخصصة موجودة لأنظمة التشغيل المختلفة في هذا الفصل، سوف نستخدم وحدات مستقلة مستقلة نظام التشغيل بقدر الإمكان ومع ذلك، سنركز على بيئة بوسيكس فو r جزء كبير من الفصل بوسيكس هو معيار لأنظمة التشغيل مثل يونكس مثل لينكس، فريبسد، ماكوس X، أو سولاريس ويندوز لا يدعم بوسيكس بشكل افتراضي، ولكن بيئة سيغوين يوفر طبقة التوافق بوسيكس ل ويندوز. برامج خارجية رونينغ. فمن الممكن استدعاء الأوامر الخارجية من هاسكل للقيام بذلك، نقترح استخدام روزيستم من وحدة هذا سوف استدعاء برنامج محدد، مع وسيطات محددة، وإرجاع رمز الخروج من هذا البرنامج يمكنك أن تلعب معها في ghci. Here، نحن تشغيل ما يعادل الأمر شل لس - l أسر راوسيستم لا تحليل الحجج من سلسلة أو توسيع أحرف البدل 43 بدلا من ذلك، فإنه يتوقع كل حجة أن تكون موجودة في قائمة إذا كنت لا تريد أن تمر أي وسيطات، يمكنك ببساطة تمرير قائمة فارغة مثل هذا. دليل والمعلومات ملف. تحتوي الوحدة على عدد قليل من الوظائف التي يمكن استخدامها للحصول على معلومات من نظام الملفات يمكنك الحصول على قائمة من الملفات في دليل أو إعادة تسمية أو حذف الملفات، نسخ الملف s، تغيير دليل العمل الحالي، أو إنشاء أدلة جديدة محمولة ويعمل على أي منصة حيث غك نفسها يعمل. المرجعية مكتبة ل يوفر قائمة شاملة من الوظائف المتاحة دعونا استخدام غسي لإثبات عدد قليل منهم معظم هذه الوظائف هي مكافئات واضحة لمكالمات مكتبة C أو أوامر شل. هنا رأينا أوامر لتغيير دليل العمل الحالي والحصول على دليل العمل الحالي من النظام هذه هي مشابهة لأوامر سد و بود في بوسيكس shell. getDirectoryContents بإرجاع قائمة لكل البند في دليل معين لاحظ أنه على أنظمة بوسيكس، هذه القائمة عادة ما تتضمن القيم الخاصة، وسوف عادة تريد تصفية هذه عند معالجة محتوى الدليل، ربما مثل هذا. لمناقشة أكثر تفصيلا لتصفية نتائج جيتديركتوريكونتينتس راجع الفصل 8، معالجة الملفات بكفاءة، والتعبيرات العادية، واسم الملف مطابقة. هل مرشح نوتليم، جزء مربكة تا ر يمكن أيضا أن تكون مكتوبة كما مرشح ج - لا إيم c، العداد في هذه الحالة على نحو فعال دعونا تمرير الحجة الثانية ل نوتليم انظر القسم دعا وظائف إنفيكس لمزيد من المعلومات حول backticks. You يمكن أيضا الاستعلام عن نظام حول موقع بعض الدلائل سوف يسأل هذا الاستعلام عن نظام التشغيل الأساسي للمعلومات. إنهاء البرنامج. غالبا ما يكتب المطورون برامج فردية لإنجاز مهام معينة يمكن دمج هذه الأجزاء الفردية لإنجاز مهام أكبر برنامج نصي شل أو برنامج آخر قد ينفذها البرنامج النصي المتصل غالبا ما يحتاج وسيلة لاكتشاف ما إذا كان البرنامج قادرا على إكمال مهمتها بنجاح هاسكل يشير تلقائيا إلى خروج غير ناجحة كلما تم إحباط البرنامج من قبل استثناء. ومع ذلك، قد تحتاج إلى مزيد من السيطرة غرامة الحبيبات على رمز الخروج من ذلك ربما كنت في حاجة للعودة رموز مختلفة لأنواع مختلفة من الأخطاء وحدة يوفر وسيلة للخروج من البرنامج وإرجاع مخرج معين رمز الحالة إلى المتصل يمكنك الاتصال إكسيتويث إكسيتسوتس لإرجاع رمز يشير إلى إنهاء ناجحة 0 على أنظمة بوسيكس أو يمكنك استدعاء شيء مثل إكسيتويث إكسيتفيلور 5 الذي سيعود رمز 5 إلى استدعاء program. Dates و Times. Everything من الطوابع ملف إلى المعاملات التجارية تنطوي على التواريخ والأوقات هاسكل يوفر طرقا للتلاعب التواريخ والأوقات، فضلا عن ميزات للحصول على معلومات التاريخ والوقت من system. ClockTime و CalendarTime. In هاسكل، وحدة هي المسؤولة في المقام الأول عن التاريخ والوقت التعامل ويحدد اثنين أنواع كلوكتيمي والتقويمTime. ClockTime هو إصدار هاسكل من حقبة بوسيكس التقليدية A كلوكتيم يمثل وقت قريب من منتصف الليل صباح 1 يناير 1970 أوتك يمثل كلوكتيمي سلبي عدد من الثواني قبل ذلك التاريخ، في حين يمثل عدد موجب عد ثوان بعد it. ClockTime مريحة للحسابات منذ أنه يتتبع التوقيت العالمي المنسق أوتك، فإنه دوسن t يجب أن تتكيف مع التوقيت المحلي أو التوقيت الصيفي أو غيرها من الحالات الخاصة في التعامل مع الوقت كل يوم هو بالضبط 60 60 24 أو 86،400 ثانية 44 مما يجعل حسابات الفاصل الزمني بسيط يمكنك، على سبيل المثال، التحقق من كلوكتيمي في بداية مهمة طويلة، مرة أخرى في النهاية، وببساطة طرح وقت البدء من نهاية الوقت لتحديد كم من الوقت المنقضي يمكنك ثم تقسيم 3600 وعرض الوقت المنقضي باعتباره عدد ساعات إذا كنت ترغب. كلوكتيمي مثالية للإجابة على الأسئلة مثل this. How الكثير من الوقت قد انقضى. ما سيكون كلوكتيمي 14 يوما قبل هذه لحظة دقيقة. عندما كان الملف آخر تعديل. ما هو الوقت الدقيق الآن. هذه هي الاستخدامات الجيدة من كلوكتيمي لأنها تشير إلى دقيقة، لحظات لا لبس فيها في الوقت المناسب ومع ذلك، كلوكتيم ليست كما تستخدم بسهولة لأسئلة مثل. هذا اليوم الاثنين. ما يوم من أيام الأسبوع سوف 1 مايو تقع في العام المقبل. ما هو الوقت الحالي في بلدي التوقيت المحلي، مع وجود المحتملة من ضوء النهار توفير الوقت دست إلى account. CalendarTime يخزن الوقت الطريقة التي يفعل البشر مع سنة والشهر واليوم والساعة والدقيقة والثانية والمنطقة الزمنية والمعلومات دست من السهل تحويل هذا إلى سلسلة مريحة للعرض، أو للإجابة على أسئلة حول بالتوقيت المحلي. يمكنك تحويل بين كلوكتيمي و كالندارتيم في سوف هاسكل يتضمن وظائف لتحويل كلوكتيم إلى كالندارتيم في المنطقة الزمنية المحلية أو إلى كالندارتيم تمثل UTC. Using كلوكتيمي. كلوكتيمي يعرف في مثل هذا. العدد الأول يمثل العدد من الثواني منذ الحقبة يمثل العدد الصحيح الثاني عددا إضافيا من بيكوسيكوندس لأن كلوكتيمي في هاسكل يستخدم نوع عدد صحيح غير محدود، فإنه يمكن أن تمثل على نحو فعال نطاق تاريخ محدود فقط من الموارد الحاسوبية. ننظر إلى بعض الطرق لاستخدام كلوكتيمي أولا، هناك الدالة جيتكلوكتيمي التي ترجع الوقت الحالي وفقا لميقاتية النظام. إذا كنت تنتظر ثانية وتشغيل جيتكلوكتيمي مرة أخرى، عليك أن ترى أنه يعود وقت محدث N أوتيس أن الإخراج من هذا الأمر كان سلسلة لطيفة المظهر، كاملة مع يوم من أيام الأسبوع المعلومات التي يرجع ذلك إلى مثيل شو ل كلوكتيمي دعونا ننظر في كلوكتيمي في مستوى أدنى. هنا أولا بناء كلوكتيم تمثل نقطة في الوقت 1000 ثانية بعد منتصف الليل في 1 يناير 1970، أوتك تلك اللحظة في الوقت المعروف باسم عصر اعتمادا على التوقيت الخاص بك، وهذه اللحظة في الوقت قد تتوافق مع مساء يوم 31 ديسمبر 1969، في التوقيت المحلي الخاص بك. الثانية مثال يوضح لنا سحب عدد الثواني من قيمة عاد من قبل جيتكلوكتيمي يمكننا الآن التلاعب بها، مثل so. This سيتم عرض ما الوقت سيكون بالضبط 24 ساعة من الآن في التوقيت المحلي الخاص بك، حيث أن هناك 86400 ثانية في 24 ساعة. Using CalendarTime. As اسمها يعني، كالندارتيم يمثل الوقت كما كنا على التقويم لديه حقول للحصول على معلومات مثل السنة والشهر واليوم يتم تعريف كالندرتيم والأنواع المرتبطة به مثل هذا. هناك بعض الأشياء حول هذه ست يجب أن يتم تسليط الضوء على كتداي كتداي و كتدنام من خلال وظائف المكتبة التي تقوم بإنشاء كالندارتيمي ولكن لا يتم استخدامها في العمليات الحسابية إذا كنت تقوم بإنشاء كالندارتيم باليد، فإنه ليس من الضروري وضع قيم دقيقة في هذه الحقول، إلا إذا كان لديك لاحقا سوف تعتمد الحسابات على هذه الأنواع الثلاثة هي أعضاء في إق ريد أورد أند شو تيكلكلاسس بالإضافة إلى ذلك، يتم الإعلان عن الشهر واليوم كأعضاء في الأنوم والمطبوعات المقطعية للحصول على مزيد من المعلومات حول هذه النظارات، يرجى الرجوع إلى القسم المسمى هام المدمج في Typeclasses. You يمكن إنشاء قيم كالندتيم عدة طرق يمكن أن تبدأ من خلال تحويل كلوكتيمي إلى كالندارتيم مثل هذا. استخدمنا جيتكلوكتيم للحصول على كلوكتيم الحالي من ساعة النظام التالي، توكالندارتيمي تحويل كلوكتيمي إلى كالندارتيم تمثل الوقت في التوقيت المحلي توتكتيم ينفذ تحويلا مماثلا، ولكن نتائجه في المنطقة الزمنية أوتك بدلا من التوقيت المحلي ملاحظة أن توكالندارتيمي هو وظيفة إو ولكن توتكتيمي ليس السبب هو أن توكالندارتيمي إرجاع نتيجة مختلفة اعتمادا على التوقيت المحلي تكوينه ولكن توتكتيمي سيعود نفس النتيجة بالضبط كلما تم تمرير نفس المصدر كلوكتيمي. من السهل تعديل قيمة كالندرتيم. في هذا المثال، أخذنا أولا قيمة كالندارتيم من وقت سابق وببساطة تحول عامها إلى عام 1960 ثم، كنا كلوكتيمي لتحويل قيمة غير معدلة إلى كلوكتيم ثم القيمة المعدلة، حتى تتمكن من رؤية الفرق لاحظ أن القيمة المعدلة تظهر عددا سالبا من الثواني بمجرد تحويلها إلى كلوكتيمي أن s المتوقع، حيث أن كلوكتيم هو إزاحة من منتصف الليل في 1 يناير 1970 أوتك، وهذه القيمة في عام 1960. يمكنك أيضا إنشاء كالندتيم القيم يدويا. لاحظ أنه على الرغم من 15 يناير 2010، إسن تا الأحد - و إيسن t اليوم 0 في السنة - كان النظام قادرا على معالجة هذا على ما يرام في الواقع، إذا قمنا بتحويل القيمة إلى كلوكتيم و ثم العودة إلى التقويم سوف تجد هذه الحقول مليئة بشكل صحيح in. TimeDiff ل ClockTime. Because يمكن أن يكون من الصعب إدارة الاختلافات بين القيم كلوكتيمي بطريقة سهلة الإنسان، وحدة يتضمن نوع تيمديف تيمديمف يمكن استخدامها، حيث مريحة، للتعامل مع هذه الاختلافات يتم تعريف مثل هذه. الوظائف مثل ديفكلوكتيمس و أدتوكلوكتيمي اتخاذ كلوكتيمي و تيمديف والتعامل مع العمليات الحسابية داخليا عن طريق تحويل إلى كالندارتيمي في التوقيت العالمي المنسق، وتطبيق الاختلافات، وتحويل العودة إلى ClockTime. Let s انظر كيف يعمل من خلال إنشاء ساعة كلوكتيم تمثل منتصف الليل 5 فبراير 2008 في أوتك لاحظ أنه ما لم تكن المنطقة الزمنية الخاصة بك هي نفس التوقيت العالمي المنسق، عند طباعة هذا الوقت على الشاشة، قد تظهر كمساء يوم 4 فبراير لأن يتم تنسيقه للتوقيت المحلي الخاص بك. بعد ذلك، نضيف شهر واحد إلى ذلك عن طريق استدعاء أدتوكلوكتيم 2008 هو سنة كبيسة، ولكن النظام التعامل معها بشكل صحيح، ونحن الحصول على النتيجة التي لديها نفس دات ه والوقت في مارس باستخدام توتكتيم يمكننا أن نرى تأثير على هذا في التوقيت الأصلي أوتك time. For تجربة ثانية، أنشأنا الوقت الذي يمثل منتصف الليل في 30 يناير 2009 في أوتك 2009 ليست سنة كبيسة، لذلك نحن قد أتساءل ماذا سيحدث عند محاولة إضافة شهر واحد لذلك يمكننا أن نرى أنه منذ لا 29 فبراير أو 30 موجودة في عام 2009، ونحن في نهاية المطاف مع مارس 2. وأخيرا، يمكننا أن نرى كيف ديفكلوكتيمس يتحول اثنين من القيم كلوكتيمي في تيمديف على الرغم فقط يتم ملء الثواني و بيكوسيكوندس في الدالة نورماليستيمديف يأخذ مثل تيمديف و إديفاتس كما يمكن أن يتوقع الإنسان أن نرى ذلك. ملفات تعديل time. Many البرامج تحتاج إلى معرفة متى تم تعديل ملفات معينة آخر برامج مثل لس أو مديري الملفات الرسومية عادة عرض الوقت تعديل الملفات تحتوي الوحدة النمطية على وظيفة جيتموديفيكاتيونتيم عبر منصة يأخذ اسم الملف ويعود كلوكتيمي يمثل الوقت الذي تم فيه آخر تعديل الملف ل example. POSIX المنصات مينتاي n ليس فقط وقت التعديل المعروف باسم متيمي، ولكن أيضا وقت آخر قراءة أو الكتابة الوصول أتيمي ووقت آخر كتاك تغيير الحالة منذ هذه المعلومات هي بوسيكس محددة، وحدة عبر منصة لا توفر الوصول إليها بدلا من ذلك، سوف تحتاج إلى استخدام وظائف في هنا هو مثال على سبيل المثال للقيام بذلك. ملاحظة أن الدعوة إلى جيتفيلستاتوس أن دعوة خرائط مباشرة إلى وظيفة C ستات قيمة عائدته يخزن تشكيلة واسعة من المعلومات، بما في ذلك نوع الملف، أذونات، مالك، مجموعة، والقيم الثلاثية التي نهتم بها توفر وظائف مختلفة، مثل وقت الوصول الذي يستخرج المعلومات التي نرغب بها من نوع فليستاتوس غير شفاف التي تم إرجاعها بواسطة جيتفيلستاتوس. الوظائف مثل بيانات الإرجاع أتسيتيمي في نوع بوسيكس محددة تسمى إيبوكتيمي التي سي تحويل إلى كلوكتيمي باستخدام وظيفة توك يوفر أيضا وظيفة سيتفيلتيمس لتعيين أتيم و متيمي لملف 45. المثال الموسع الأنابيب. نحن فقط رأينا كيف استدعاء البرنامج الخارجي في بعض الأحيان نحن بحاجة إلى مزيد من السيطرة التي ربما نحتاج إلى الحصول على الإخراج من تلك البرامج، وتوفير المدخلات، أو حتى سلسلة معا برامج خارجية متعددة الأنابيب يمكن أن تساعد مع كل هذه الاحتياجات الأنابيب غالبا ما تستخدم في شل البرامج النصية عند إعداد الأنابيب في القذيفة، تقوم بتشغيل برامج متعددة يتم إرسال إخراج البرنامج الأول إلى مدخلات الثانية يتم إرسال إخراجها إلى الثالث كمدخلات، وهلم جرا إخراج البرنامج الأخير s يذهب عادة إلى المحطة، أو يمكن أن تذهب إلى ملف هنا s مثال جلسة مع بوزيكس قذيفة لتوضيح الأنابيب. هذا الأمر يعمل ثلاثة برامج البيانات الأنابيب بينهما يبدأ مع لس الخ التي تنتج قائمة بجميع الملفات أو الدلائل في الخ يتم إرسال إخراج لس كإدخال إلى غريب أعطينا غريب التعبير العادي الذي سيؤدي إلى إخراج فقط الخطوط التي تبدأ مع م ثم تحتوي على أب في مكان ما في الخط وأخيرا، يتم إرسال نتيجة لذلك إلى تر أعطينا خيارات تر لتحويل كل شيء إلى أحرف كبيرة الإخراجمن تر إيسن t مجموعة في أي مكان على وجه الخصوص، لذلك يتم عرضها على الشاشة. في هذا الوضع، مقابض شل إنشاء جميع خطوط الأنابيب بين البرامج باستخدام بعض من أدوات بوسيكس في هاسكل، يمكننا أن نفعل الشيء نفسه. قبل وصف كيفية القيام بذلك، يجب علينا أولا أن يحذرك من أن وحدات كشف واجهة مستوى منخفض جدا لأنظمة يونكس واجهات يمكن أن تكون معقدة ويمكن أن تكون تفاعلات معقدة أيضا، بغض النظر عن لغة البرمجة التي تستخدمها للوصول إليها الطبيعة الكاملة من هذه الواجهات المنخفضة المستوى موضوع الكتب بأكملها أنفسهم، لذلك في هذا الفصل سوف نقوم فقط خدش السطح. استخدام أنابيب ل Redirection. POSIX يعرف وظيفة أن يخلق الأنابيب هذه الدالة ترجع اثنين من واصف الملف فدس، والتي هي مماثلة في المفهوم إلى هاسكل مقبض واحد فد هو نهاية القراءة من الأنابيب، والآخر هو نهاية الكتابة أي شيء مكتوب إلى نهاية الكتابة يمكن قراءتها من قبل نهاية القراءة يتم رفع البيانات من خلال أنبوب في H أسكيل، يمكنك استدعاء كريبيبيب للوصول إلى هذه الواجهة. تحقيق الأنابيب هو الخطوة الأولى لتكون قادرة على الأنابيب البيانات بين البرامج الخارجية يجب علينا أيضا أن تكون قادرة على إعادة توجيه الإخراج من برنامج إلى الأنابيب، ومدخلات برنامج آخر من أنبوب وظيفة هاسكل دوبتو ينجز هذا الأمر يأخذ فد ويجعل نسخة منه في عدد فد آخر بوسيكس فدس للمدخلات القياسية والمخرجات القياسية، والخطأ القياسية لديها أرقام فد المعرفة مسبقا من 0 و 1 و 2 على التوالي من خلال إعادة ترقيم نقطة النهاية من الأنابيب إلى واحدة من تلك الأرقام، ونحن يمكن أن تسبب برامج فعالة أن يكون المدخلات أو الإخراج redirected. There هو قطعة أخرى من اللغز، ومع ذلك يمكننا أن نر فقط استخدام دوبتو قبل مكالمة مثل روزيستم لأن هذا من شأنه أن يفسد المدخلات القياسية أو الإخراج من عملية هاسكل الرئيسية لدينا وعلاوة على ذلك، كتل روزيستم حتى تنفيذ البرنامج استدعاء، وترك لنا أي وسيلة لبدء عمليات متعددة تعمل بالتوازي لجعل هذا يحدث، يجب علينا استخدام فوركبروسيس هذا هو خاص جدا فونكتيون فإنه في الواقع يجعل نسخة من البرنامج قيد التشغيل حاليا وكنت في نهاية المطاف مع نسختين من البرنامج قيد التشغيل في نفس الوقت هاسكل s وظيفة فوركبروسيس يأخذ وظيفة لتنفيذ في عملية جديدة تعرف باسم الطفل لدينا هذه الدعوة وظيفة دوبتو بعد أن فعلت ذلك، فإنه يدعو إكسكوتفيل إلى استدعاء الأمر فعلا هذا هو أيضا وظيفة خاصة إذا كان كل شيء على ما يرام، فإنه لا يعود ذلك s لأن إكسكوتفيل يستبدل العملية قيد التشغيل مع برنامج مختلف في نهاية المطاف، فإن عملية هاسكل الأصلية استدعاء جيتبرويسستاتوس إلى انتظر حتى يعالج الطفل إنهاء وتعلم رموز الخروج الخاصة بهم. عندما تقوم بتشغيل أمر على أنظمة بوسيكس، سواء كنت قد كتبت للتو لس على سطر الأوامر أو استخدام روزيستم في هاسكل، تحت غطاء محرك السيارة، فوركبروسيس إكسكوتيفيل و جيتبروسيسستاتوس أو C معادلة تستخدم دائما لإنشاء الأنابيب، ونحن تكرار العملية التي يستخدمها النظام لبدء البرامج، وإضافة بضع خطوات تشمل الأنابيب و إعادة توجيه على طول way. There عدد قليل من الأشياء التدبير المنزلي الأخرى يجب أن نكون حذرين حول عند استدعاء فوركبروسيس فقط عن كل شيء عن البرنامج الخاص بك هو المستنسخة 46 التي تتضمن مجموعة من وصف ملف مفتوح يعالج برامج الكشف عند إعادة القيام به تلقي المدخلات من الأنابيب عن طريق التحقق من مؤشر نهاية الملف عندما تنتهي العملية في نهاية كتابة الأنبوب من الأنابيب، فإن العملية في نهاية القراءة سوف تتلقى إشارة نهاية الملف ومع ذلك، إذا كان وصف ملف الكتابة موجود في أكثر من واحد العملية، وفاز مؤشر نهاية نهاية إرسال t حتى جميع العمليات قد أغلقت ذلك فد معين لذلك، يجب علينا تتبع التي يتم فتحها فدس حتى نتمكن من إغلاق كل منهم في عمليات الطفل يجب علينا أيضا إغلاق الطفل ينتهي من الأنابيب في العملية الأم في أقرب وقت ممكن. هنا هو التنفيذ الأولي لنظام الأنابيب في Haskell. Let s التجربة مع هذا في غسي قليلا قبل النظر في كيفية يعمل. نبدأ بتشغيل أمر بسيط، بود وود إيش فقط يطبع اسم دليل العمل الحالي نمر لقائمة الوسيطات، لأن بود لا تحتاج إلى أي وسيطات بسبب النظارات المستخدمة، هاسكل يمكن ر استنتاج نوع لذلك نحن نذكر على وجه التحديد أنه سا String. Then نحصل على إلى أوامر أكثر تعقيدا نحن تشغيل ليرة سورية إرساله من خلال غريب في النهاية، أنشأنا أنبوب لتشغيل نفس الأمر بالضبط الذي ركضنا عن طريق الأنابيب التي بنيت قذيفة في بداية هذا القسم انها ليست حتى الآن ممتعة كما كان في القذيفة، ولكن بعد ذلك مرة أخرى برنامجنا لا يزال بسيطا نسبيا بالمقارنة مع قذيفة. نظرة ق نظرة على البرنامج السطر الأول جدا يحتوي على شرط أوبتيونسغك خاص هذا هو نفس تمرير - fglasgow - إكستس إلى غك أو غسي نحن باستخدام تمديد غك الذي يسمح لنا باستخدام سلسلة، نوع سلسلة كمثال من فئة 47 من خلال وضعه في ملف المصدر، نحن لا يجب أن نتذكر لتحديد ذلك في كل مرة نستخدم هذه الوحدة النمطية. بعد خطوط الاستيراد، ونحن نحدد أنواع قليلة أولا، ونحن نحدد نوع سيسكوماند سلسلة، S ترينغ كاسم مستعار هذا هو نوع الأمر الذي سيتم تنفيذه من قبل النظام سيستغرق استخدمنا بيانات من هذا النوع لكل أمر في المثال التنفيذ أعلاه يمثل نوع كوماندرسولت النتيجة من تنفيذ أمر معين، ويمثل نوع كلوسيفدس قائمة فدس التي يجب علينا إغلاقها عند التمسك بعملية أطفال جديدة. الآن، نحدد فئة اسمها كوماندليك هذه الفئة سوف تستخدم لتشغيل الأشياء، حيث قد يكون شيء برنامج مستقل، أنبوب اقامة بين اثنين أو أكثر من البرامج، أو في المستقبل، حتى وظائف هاسكل نقية لتكون عضوا في هذه الفئة، وظيفة واحدة فقط - استدعاء - يحتاج إلى أن تكون موجودة لنوع معين وهذا سيتيح لنا استخدام رونيو لبدء إما أمر مستقل أو خط أنابيب وسوف أيضا أن تكون مفيدة لتحديد خط أنابيب، لأننا قد يكون كومة كاملة من الأوامر على واحد أو كلا الجانبين من أمر معين. بنيتنا التحتية الأنابيب سوف تستخدم السلاسل كوسيلة لإرسال البيانات من عملية إلى أخرى يمكننا الاستفادة هاسكل s دعم القراءة كسول عبر هجيتكونتينتس أثناء قراءة البيانات، واستخدام فوركيو للسماح الكتابة تحدث في الخلفية هذا وسوف تعمل بشكل جيد، وإن لم يكن بالسرعة كما ربط نقاط النهاية من عمليتين معا مباشرة 48 يجعل التنفيذ بسيط جدا، ولكن نحن بحاجة فقط اتخاذ ورعاية للقيام بأي شيء من شأنه أن يتطلب سلسلة بأكملها لتكون مخزنة، والسماح هاسكل S الكسل تفعل بقية. بعد ذلك، فإننا نحدد مثيل كوماندليك ل سيسكوماند نحن إنشاء اثنين من أنابيب واحد لاستخدامها في عملية جديدة المدخلات القياسية، و أخرى لانتاجها القياسي هذا يخلق أربع نقاط نهاية، وبالتالي أربعة واصف الملف نضيف الواصفات ملف الأصل إلى قائمة تلك التي يجب أن تكون مغلقة في جميع الأطفال هذه ستكون نهاية الكتابة من المدخلات القياسية للطفل، ونهاية القراءة من الناتج القياسية للطفل التالي، ونحن مفترق عملية الطفل في الأم، يمكننا بعد ذلك إغلاق واصف الملف التي تتوافق مع الطفل يمكننا أن نفعل ذلك قبل شوكة، لأنه بعد ذلك لن تكون متاحة للطفل نحصل على مقبض لوصف ملف ستدينوريت، وبدء مؤشر ترابط عبر فوركيو لكتابة البيانات المدخلة لذلك نحن ثم تحديد ويتفونك الذي هو الإجراء الذي سوف يستدعي المتصل عندما يكون على استعداد للانتظار لما يسمى عملية إنهاء في الوقت نفسه، يستخدم الطفل دوبتو يغلق واصف الملف لا تحتاج، وينفذ الأمر. الآن، نحدد بعض وظائف الأداة المساعدة لإدارة قائمة من واصف الملف بعد ذلك، ونحن نحدد الأدوات التي تساعد على إنشاء خطوط الأنابيب أولا ، ونحن نحدد نوع جديد بيبكوماند التي لديها مصدر والوجهة يجب أن يكون المصدر والوجهة أعضاء كوماندليك نحن أيضا تحديد - - مشغل الراحة ثم، ونحن جعل بيبيكوماند مثيل كوماندليك تنفيذه استدعاء يبدأ الأمر الأول مع إعطاء المدخلات، ويحصل على انتاجها، ويمر هذا الإخراج إلى استدعاء الأمر الثاني ثم يعود إخراج الأمر الثاني، ويسبب وظيفة جيتكسيستاتوس إلى الانتظار للتحقق من حالات الخروج من كلا الأمرين. ننتهي من خلال تعريف رونيو تحدد هذه الوظيفة قائمة فدس التي يجب أن تكون مغلقة في العميل، يبدأ الأمر، يعرض إخراجه، والتحقق من حالة الخروج. بيتر الأنابيب.

No comments:

Post a Comment