اللغات المنطقية - Prolog أو Lisp/Smalltalk أو أي شيء آخر؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

لذلك، أنا أكتب نوعًا ما من برامج الإحصائيات (في الواقع أقوم بإعادة تصميمه ليصبح شيئًا أكثر أناقة) واعتقدت أنه يجب علي استخدام لغة تم إنشاؤها لهذا النوع من الأشياء (التعامل مع بيانات ضخمة من الإحصائيات، والاتصالات بينها وبين نوع من البرمجة الجينية/العصبية).

لأقول لك الحقيقة، أريد فقط عذرًا للتعمق في اللثغة/الحديث الصغير (أليس الحديث التافه/الثغرة/التحدث نفسه؟- مثل الثعبان وروبي؟-semantics-wise) ولكني أريد أيضًا أن تكون اللغة مفهومة بسهولة من قبل الأشخاص الآخرين المولعين باللغة الأساسية (ولهذا السبب لم أختر LISP - بعد:D).

لقد قمت أيضًا بمراجعة Prolog ويبدو أنها لغة رائعة جدًا (من السهل إجراء علاقات بين البيانات وأسهل من Lisp) ولكني أود أن أسمع رأيك.

شكرًا

يحرر:أنا دائمًا أخلط بين اللثغة الشائعة وSmalltalk.آسف لوضع هاتين اللغتين معًا.وأيضا ما قصدته ب"أشخاص آخرين مغرمون باللغة الأساسية"هو أنني لا أفضّل لغة ذات دلالات مثل lisp (للأشخاص الذين ليس لديهم خلفية في علوم الكمبيوتر) وأجد Prolog أكثر سهولة إلى حد ما (ولكن هذا رأيي بعد أن أعبثت قليلاً مع كليهما).

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

المحلول

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

في هذه الحالة، هل يمكن ربما تقليل الجهد اللازم للتنفيذ والرياح حتى مع تطبيق أكثر مرونة.

إذا كنت قد حصلت على مجموعة قلبك على تعلم لغة أخرى، وبكل الوسائل، أن تفعل ذلك. هناك العديد من جيدة مجانا (البعض في الكلام، وبعض كما هو الحال في البيرة) تطبيقات من Smalltalk، <ل أ href = "http://kti.mff.cuni.cz/~bartak/prolog/implementations.html" يختلط = "نوفولو noreferrer"> حاسوب و <لأ href = "HTTP: //en.wikipedia. غزاله / ويكي / Common_Lisp # List_of_implementations "يختلط =" نوفولو noreferrer "> اللثغة.

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

نصائح أخرى

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

  • Smalltalk - OO خالص من الألف إلى الياء، عادةً (على سبيل المثالSqueak) مقترنًا ببيئة متكاملة تمثل IDE ووقت التشغيل في نفس الوقت.IOW تدخل إلى Smalltalk VM وتعمل داخله بدلاً من مجرد كتابة نص "كود المصدر".

  • LISP - أقرب بكثير إلى البرمجة الوظيفية (على الرغم من وجود إيحاءات حتمية)؛يعد تدوين البادئة العائق الأول أمام معظم الأشخاص الذين "يحبون" اللغات الأخرى، ولكن مفهوم وحدات الماكرو واستخدامها هو أكثر أهمية بكثير.

  • Clojure - إن الجمع بين تكامل LISP وOO وJVM يجعل هذا البرنامج أقل تشابهًا مع BASIC.

  • Python وRuby - لقد قمت بجمعهما معًا (على حساب المزيد من المعجبين المزعجين لأي منهما؛-) لأنهما لغة OO ذات تدوينات مميزة ستتطلب من شخص خارجي بعض الشيء من منحنى التعلم.غالبًا ما يكون استخدام المسافة البادئة فقط لتداخل التحكم في Python والاستخدام المشابه لـ Perl للأحرف الخاصة في Ruby من نقاط الشكوى من قبل القادمين الجدد.على الرغم من أنه يمكن كتابة كليهما بأسلوب أمري، إلا أن ذلك قد يعتبر غير قياسي من قبل المستخدمين المتمرسين.

  • Prolog - هذه هي اللغة الأكثر اختلافًا عن لغة BASIC من بين جميع اللغات المذكورة.يمكن (ab) استخدام جميع اللغات الأخرى التي ذكرتها بأسلوب شبه إجرائي، ولكن هذا مستحيل في الأساس في Prolog.يتطلب الأمر فهمًا شاملاً للتكرار والراحة معه لفعل أي شيء غير تافه.

الكود المكتوب بـ "لكنة أصلية" في جميع هذه اللغات بشكل أساسي (ولكن بشكل خاص Prolog، IMHO) سيستفيد من التعابير والمفاهيم التي تقع خارج نطاق البرمجة الأساسية التقليدية.وبعبارة أخرى، إذا اخترت واحدة من هذه ثم كتبت التعليمات البرمجية "بلكنة أساسية"، فإنك قد أهدرت إلى حد كبير الفوائد التي يمكن أن تقدمها اللغة.

أعتقد أنهم جميعًا يستحقون تعلم المفاهيم التي يمكنهم تدريسها (أو على الأقل تعزيزها، اعتمادًا على خلفيتك).لكن التشابه مع اللغة X (لنطاق واسع من قيم X) ليس هو ما ستحصل عليه.

وأستطيع أن أجيبك جزئيا

<اقتباس فقرة>   

و(لا من Smalltalk / اللثغة / كلوجر نفسه -؟ مثل الثعبان وروبي -semantics الحكيم)

لا، انها ليست كذلك. من Smalltalk هي اللغة OO مع تمرير رسالة بدلا استدعاءات الأسلوب. ثغة هو يسب ؛-) وهذا يعني لغة وظيفية حقا مع النظام الكلي القوية والدعم OO الذي لم يسبق له مثيل في اللغات الأخرى (في CL) والعديد من الميزات. الإغلاق هو لغة تشبه اللثغة دون العديد من الميزات يسب ولكن التكامل جيدة لJVM. انها ليست دعم الأمثل دعوة الذيل على سبيل المثال. والثعبان أو روبي والكلاسيكية اللغات حتمية OO مع بعض القدرة الوظيفية محدودة. ملاحظة كلمة محدودة. على سبيل المثال، غيدو لا يحب البرمجة الوظيفية وإزالة بعض ميزات وظيفية في الإصدار 2.5 و 2.6.

إذا كنت على دراية البرمجة الإجرائية حتمية كما هو الحال في بيثون وتريد تغيير النموذج الخاص بك يجب عليك اتخاذ القرار الخاص بعناية.

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

إذا كنت مهتما في برولوج ثم هناك نسخة مجانية من البصرية حاسوب متاح و ويبلغ سعر النسخة التجارية معقول.

وانها نوع فرع قوي من حاسوب هو حتى لا تنفيذ الكلاسيكي الخاص للغة، ولكن لديها تاريخ محترم - بورلاند تسويقها سلف DOS في الأمر على النحو توربو برولوج مرة أخرى في أواخر '80s.

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

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