سؤال

في الوقت الحالي ، أنا أستخدم Haddock فقط ولكن بعد رؤية بعض الأمثلة المثيرة للاهتمام حقًا (على سبيل المثال هذا جوهر) من Haskell القراءة والكتابة ، أنا مهتم بتجربته في مشروع.

الأسئلة التي تلقيتها ، هي:

  • ماذا تكتب كتعليقات Haddock وماذا تكتب في الجزء القراءة والكتابة؟

  • كيف يمكنك توسيع نطاق البرمجة القراءة والكتابة إلى ملفات متعددة؟ هل يمكن لأي شخص أن يوجهني إلى مثال حيث يتم استخدام البرمجة القراءة والكتابة في حزمة ذات وحدات متعددة؟ ما هي تجربتك في استخدام البرمجة القراءة والكتابة في حزم أكبر؟

  • أي نكهة (تخفيض ، اللاتكس ، ...) من هاسكل القراءة والكتابة تفضل؟

  • لماذا تقوم برمجة في Haskell أو Plain Vanilla Haskell؟ هل تقوم ببرمجة في كلا الأسلوبين وإذا كان الأمر كذلك فلماذا؟

  • هل تفضل أسلوب الكتلة (\begin{code}) أو على غرار الطيور (>))؟ لماذا ا؟

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

المحلول

اعتدت أن أكتب الكثير من برامج القراءة والكتابة.

ماذا تكتب كتعليقات Haddock وماذا تكتب في الجزء القراءة والكتابة؟

ال وثائق API الخارجية يذهب إلى تعليقات Haddock. كل شيء آخر يذهب إلى الجزء القراءة والكتابة. قد تشمل "كل شيء آخر":

  • الثوابات الداخلية لهياكل البيانات
  • لماذا أنت تفعل الأشياء بهذه الطريقة
  • ماذا التصميم من الكود
  • لماذا تم اختيار هذا التصميم ، وما هي التصميمات الأخرى التي تمت تجربتها ووجدها تريد

كيف يمكنك توسيع نطاق البرمجة القراءة والكتابة إلى ملفات متعددة؟

بنفس الطريقة التي تقوم بها بتقييد مستند Latex كبير إلى ملفات متعددة: ملف واحد لكل وحدة ، ثم ملف عملاق \includeS لهم جميعا.

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

إنه ليس هاسكل ، ولكن برنامج التحويل البرمجي السريع هو برنامج وظيفي كبير مكتوب باستخدام البرمجة القراءة والكتابة.

ما هي تجربتك في استخدام البرمجة القراءة والكتابة في حزم أكبر؟

تعمل البرمجة القراءة والكتابة بشكل جيد للغاية لتوثيق الوحدات النمطية الصعبة أو الصعبة أو المعقدة. بالنسبة إلى معظم الوحدات البسيطة ، فإن وثائق API الخارجية (على سبيل المثال ، Haddock) كافية. ولن يمنحك أي برنامج متعلم حقًا الصورة الكبيرة للتصميم الذي يحتوي على أكثر من عشرة وحدات. لذلك تحتاج إلى أدوات وتقنيات أخرى.

أي نكهة (تخفيض ، اللاتكس ، ...) من هاسكل القراءة والكتابة تفضل؟

إذا كنت تقوم بمثل هذا الاستثمار الكبير ، فأنا بالتأكيد سأذهب مع LaTex لمجرد قدرة الرياضيات ، وقوة الأداة الأكبر عمومًا.

لماذا تقوم برمجة في Haskell أو Plain Vanilla Haskell؟ هل تقوم ببرمجة في كلا الأسلوبين وإذا كان الأمر كذلك فلماذا؟

رموز Haskell الخاصة بي دائمًا ما تكون كلها فانيليا عادية ، لسببين:

  • أعمل مع كبار السن الذين لديهم المزيد من الخبرة في هاسكل ، وقد تخلى عن هاسكل القراءة والكتابة. فقط أقدم الوحدات في نظامها لديها أي فرصة للوجود. LHS.

  • بالنسبة إلى Haskell ، فإن البرمجة القراءة والكتابة هي نوع من الحاجة. واحدة من الفوائد الكبيرة لأداة برمجة القراءة والكتابة هي أنك تحررت من أي قيود قد يضعها المترجم أو تعريف اللغة بالترتيب الذي يظهر به التعليمات البرمجية الخاصة بك. لكن Haskell لا يوجد لديه أي قيود تقريبًا: لا يوجد تعريف قبل الاستخدام ، وللتعريف الوظيفي النموذجي لديّ خيار من let-بدو أو where-ربط أسماء مساعدة (أو كليهما). البرمجة القراءة والكتابة لم يكن أبدًا عن التعليقات الفاخرة ، ومع "القراءة والكتابة" هاسكل هذا كل ما تحصل عليه. الأمر لا يستحق الإزعاج.

هل تفضل أسلوب الكتلة ( start {code}) أو طراز الطيور (>)؟ لماذا ا؟

أفضّل بشدة نمط الكتلة:

  • إنه متوافق تقريبًا مع كل أداة برمجة القراءة والكتابة الأخرى على هذا الكوكب. (مسارات الطيور فريدة من نوعها بالنسبة إلى هاسكل.)

  • يتكيف المحرر الخاص بي بشكل أفضل مع نمط الكتلة.

نصائح أخرى

إذا كنت تنوي مشاركة البرامج على الإنترنت ، فقد وجدت مزيجًا من Haskell القراءة والكتابة بأسلوب Markdown مع Mathjax ليكون مزيجًا رائعًا. البرنامج "Pandoc" رائع على محمل الجد لأخذ هذا "Marmdown+LHS" لأي شكل تريده ، بما في ذلك PDF أو HTML. إذا أخبرت Pandoc بالإخراج إلى HTML ، فيمكنك استخدام -المواجس (أو غيرها من الأعلام المماثلة إذا كنت تفضل) تقديم صيغ الرياضيات اللاتكس.

عند استخدام هذا النمط ، أجد أن أسلوب الطيور هو الأفضل لأنه أكثر قابلية للقراءة بالنسبة لي ويبدو أنه يتناسب مع نمط التخفيض بشكل أفضل.

إن الشيء العظيم في استخدام Pandoc مع Markdown هو أنه يمكنك إضافة الاستشهادات إلى التعليمات البرمجية ، وصيغ الرياضيات ، والحصول على تنسيق محمول حقًا. يمكنك بناء شيء يشبه ورقة بحث علمية ولكنها قابلة للتنفيذ ويمكن أيضًا نشرها على المدونات/WIKIs/مواقع الويب.

لإعطاء نقطة بديلة لنورمان حيث يقول إن البرمجة القراءة والكتابة مفيدة لترتيب الكود أوضح ، يمكن القول أن Haskell معبرة بما يكفي لأن المشكلات التي تحلها مع الكود مثيرة للاهتمام بالفعل ويمكن أن تستفيد حقًا من خلال أن تكون محاطًا بالنص التوضيحي . فكر في ورقة بحث رياضية. تحتوي الأوراق الجيدة في الرياضيات الخالصة على الكثير من النص لشرح الدافع أو التفسيرات العليا لما يعنيه التدوين الرياضي. في ورقة حول معادلات Navier-Stokes ، على سبيل المثال ، سيكون من المفيد للغاية أن يحيط بتدوين المعادلات مع نص يشرح مدى ارتباطه بحفاظ نيوتن على الزخم.

باختصار ، لقد حققت نجاحًا جيدًا مع نمط Marmdown+LHS ، وعلامات الدولار لتضمين صيغ الرياضيات اللاتكس ، وأسلوب الطيور ، والباندوك. أود أن أوصي برامج الكتابة كما لو كانت أوراقًا بحثية وعلاج هاسكل نفسه كما تفعل مع تعبيرات رياضية في ورقة بحثية.

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