سؤال

على سبيل المثال، في جافا هناك جافا الوظيفية و جافا ذات الترتيب العالي.كلاهما يوفران بشكل أساسي واجهة برمجة تطبيقات صغيرة لمعالجة الوظائف ذات الترتيب العالي، وربما بعض أنواع البيانات الجديدة (الصفوف، والقوائم غير القابلة للتغيير).

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

المحلول

هل بحثت في F#?

سيكون أيضًا منشور مدونة أنيقًا هنا يتحدث عن كيفية استخدام التعبيرات العامة/لامدا الجديدة المضمنة في الإصدار C# 3.0.

إذا قمت للتو بإضافة استخدام System.Linq إلى الجزء العلوي من ملفك المصدر، فهناك الكثير من الوظائف الجديدة الرائعة التي تمت إضافتها للعمل مع المجموعات مثل الطي / التصفية / وما إلى ذلك.

نصائح أخرى

يبدو LanguageExt جداً واعدة لجعل برمجة النمط الوظيفي في C # أسهل.

https://github.com/louthy/language-ext

بافتراض أنك لا تستطيع استخدام F# لأي سبب من الأسباب، وتريد فقط استخدام النماذج الوظيفية والتعابير في كود C# الخاص بك لتحسين الجودة والموثوقية:

مطابقة نمط النمط الوظيفي لـ C#

مكتبة Monad لـ C#/.Net

يوجد ايضا 'رفع' الذي يحتوي على بعض الأشياء الوظيفية مثل أنواع الخيارات (ربما) وما إلى ذلك.

أعتقد أنك تريد F#

أيضًا، تحتوي الإصدارات الأحدث من C# على الكثير من المفاهيم الوظيفية المضمنة في اللغة الأساسية.

قد تكون هناك مكتبة كهذه لـ C#، ولكن ربما ينبغي عليك التفكير في استخدام F# فقط http://research.microsoft.com/fsharp/fsharp.aspx و http://msdn.microsoft.com/en-us/fsharp/default.aspx.

تخطط Microsoft لجعل F# لغة من الدرجة الأولى في Visual Studio، لذلك يجب أن تكون هناك مخاطرة قليلة في استخدام أحد برامج CTP لإنشاء الأشياء الأولية الخاصة بك.

إذا كنت تبحث عن شيء يمتد إلى C# فلا، ولكن هناك F# وهي لغة وظيفية تعتمد على .NET.من "حول F#" صفحة:

F# هي لغة برمجة وظيفية مكتوبة لـ .NET Framework.فهو يجمع بين الإيجاز والتعبير والتركيب للبرمجة الوظيفية المكتوبة مع دعم وقت التشغيل والمكتبات وقابلية التشغيل البيني والأدوات ونموذج الكائن الخاص بـ .NET.تنبع F# من عائلة لغات ML ولها لغة أساسية متوافقة مع لغة OCaml، على الرغم من أنها مستمدة أيضًا من C# وHaskell.تم تصميم F# من الألف إلى الياء ليكون مواطنًا من الدرجة الأولى على .NET، مما يوفر إمكانية التشغيل التفاعلي السلس مع لغات .NET الأخرى.على سبيل المثال، يمكن لـ C# وF# الاتصال ببعضهما البعض مباشرة.وهذا يعني أن F# يتمتع بإمكانية الوصول الفوري إلى كافة واجهات برمجة تطبيقات .NET Framework، بما في ذلك، على سبيل المثال، Windows Presentation Foundation وDirectX.وبالمثل، يمكن استخدام المكتبات التي تم تطويرها في F# من لغات .NET الأخرى.

نظرًا لأن F# وOCaml يشتركان في لغة أساسية مماثلة، يمكن لبعض مكتبات وتطبيقات OCaml الترجمة التبادلية إما بشكل مباشر أو مع تغييرات بسيطة مترجمة بشكل مشروط.يوفر هذا مسارًا للترجمة المتقاطعة و/أو نقل كود OCaml الموجود إلى .NET، كما يسمح للمبرمجين بنقل المهارات بين هذه اللغات.كان التركيز الرئيسي للمشروع هو توسيع نطاق اللغات المشابهة لـ OCaml إلى المجالات التي لم يتم استخدامها فيها تقليديًا.طوال المشروع، يشعر مصممو F# بالامتنان لدعم وتشجيع Xavier Leroy وآخرين في مجتمع OCaml.

ليست مكتبة متقلصة في حد ذاتها، ولكن لوكا بولونيز من مايكروسوفت قام بذلك سلسلة من المشاركات بلوق حيث قام ببناء مكتبة C# للبرمجة الوظيفية بأنواع مثل الصفوف والسجلات واتحادات الكتابة وما إلى ذلك:

كما أن Linq هي في الأساس مكتبة للبرمجة الوظيفية مع دعم نحوي في لغة C#.

الدفع http://code.msdn.microsoft.com/FunctionalCSharp لبعض العينات.

F#، هناك إصدار CTP متوفر من Microsoft.

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