سؤال

أنا حقا أشعر أنني يجب أن تعلم Lisp وهناك الكثير من الموارد إلى هناك لمساعدة لي أن تفعل ذلك.

أنا لا تأجيل معقدة الجملة, ولكن أين في "التجارية التقليدية البرمجة" أجد أماكن فمن المنطقي أن تستخدم بدلا من لغة إجرائية.

هل هناك التجارية القاتل التطبيق كان مكتوب في Lisp ؟

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

المحلول

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

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

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

نصائح أخرى

Lisp و لغة معقدة مع مجموعة كبيرة ومعقدة من وقت التشغيل دعم ذلك.لهذا السبب, Lisp هو الانسب كبيرة ومشاكل معقدة.

الآن ، مجمع المشكلة ليست في نفس معقدة واحد.A مجمع مشكلة واحدة مع الكثير من التفاصيل الصغيرة ، ولكن الذي ليس من الصعب.كتابة طيران نظام الحجز هو عمل معقد, ولكن مع ما يكفي من المال و المبرمجين ليس من الصعب.الحصول على الفرق ؟

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

Lisp هي حقا مناسبة تماما المشاكل حيث يجب أن يكون الحل قابلة للتوسيع;المثال الكلاسيكي هو محرر النصوص emacs.هو برمجة بالكامل ، وبالتالي بيئة البرمجة في حق الخاصة.

في كتابه الشهير PAIP, نورفيج يقول أن يسب مثالية استكشافية البرمجة.هذا هو البرمجة حل المشكلة التي ليست مفهومة تماما (بدلا من على الخط نظام الحجز).وبعبارة أخرى:المشاكل المعقدة.

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

اللثغة يحافظ فون نيومان نموذج ؛ لا يوجد حادة ، قبل تحديد الحدود بين التعليمات البرمجية والبيانات.في الفورتران يفتح عقلك على قوة فون نيومان نموذج.في الفورتران يجعلك ترى المفاهيم القديمة في ضوء جديد.

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

مع هذا مقدمة يمكنني أخيرا أن نقدم الرد على سؤالك:سوف تجد أماكن حيث يتألق "التقليدية" اللغات ؟

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

ردا على @lassevk:

alt text

معقدة الجملة??

بناء الجملة من أجل اللثغة هو بسيطة بشكل لا يصدق.

التطبيق القاتل مكتوب في اللثغة: emacs.اللثغة سوف تسمح لك لتوسيع emacs في أن تفعل أي شيء تقريبا يمكن ان يخطر لك أن المحرر قد تفعل.

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

أيضا أريد أن أضيف:حتى إذا كان يمكنك العثور على الأماكن التي يسب معنى, ربما لن تقنع أي شخص آخر أنه ينبغي أن تستخدم على java, c++, c#, python, ruby, الخ.

لا أستطيع الإجابة من أول تجربة مباشرة ولكن يجب أن تقرأ ما غراهام بول كتب على Lisp.أما بالنسبة "القاتل التطبيق" جزء القراءة بفوزه على المتوسطات.

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

Lisp هي مفيدة جدا لخلق قليلا DSLs.لقد حصلت على نسخة من لثغة في مربع تشغيل في العمل و كتبت القليل DSLs لاستجواب قواعد بيانات SQL server و توليد طبقات البيانات وغيرها في C#.جميع المرجل لوحة رمز يكتب الآن في اللثغة وحدات الماكرو التي الإخراج إلى C#.انا توليد HTML, XML, كل أنواع الأشياء مع ذلك.في حين أتمنى أن استخدام اللثغة اليومية الترميز ، لثغة يمكن أن تجلب فوائد عملية.

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

أي لغة تبدو أصعب بكثير عندما لا تستخدم المشتركة المسافة البادئة الاتفاقيات اللغة.عندما يتبع لهم من يسب أحد يرى كيف يعبر عن جملة هيكل شجرة بسهولة تامة (ملاحظة, هذا ليس صحيحا تماما لأن المعاينة يكمن قليلا ؛ r يجب أن تتماشى مع fns في العودية فرز سريع الحجة):

(defun quicksort (lis) 
  (if (null lis) 
      nil
      (let* ((x (car lis)) 
             (r (cdr lis)) 
             (fn (lambda (a) 
                   (< a x))))
         (append (quicksort (remove-if-not fn 
                                           r)) 
                 (list x)
                 (quicksort (remove-if fn 
                                       r))))))

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

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

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

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

الأمر يستحق الوقت الاستثمار فقط لمعرفة الفرق في الجمال من ستة متداخلة نقية وظائف و كابوس ستة وظائف متداخلة مع آثار جانبية.

من http://www.gigamonkeys.com/book/introduction-why-lisp.html

واحدة من الأكثر شيوعا المتكررة الخرافات حول اللثغة هو أنه "ميت". في حين أنه من الصحيح أن Common Lisp لا كما تستخدم على نطاق واسع كما يقولون, Visual Basic أو جافا ، يبدو غريبا أن تصف اللغة التي لا تزال تستخدم من أجل التنمية الجديدة و التي لا تزال لجذب المستخدمين الجدد باسم "ميت." بعض الأخيرة اللثغة قصص النجاح تشمل بول غراهام Viaweb ، والتي أصبحت مخزن ياهو عندما ياهو اشترت له الشركة ؛ ITA البرنامج جوا التسعير نظام التسوق, QPX, تستخدم عن طريق التذاكر عبر الانترنت البائع اربيتز ، الآخرين ؛ شقي الكلب لعبة بلاي ستيشن 2, Jak and Daxter ، هو إلى حد كبير مكتوب في المجال محددة اللثغة اللهجة المشاغب الكلب اخترع يسمى الهدف الذي المترجم هو نفسه كتب المشتركة اللثغة;و رومبا المستقلة المكنسة الكهربائية الروبوتية ، الذي البرمجيات هو مكتوب في L, بالخفض متوافق فرعية من Common Lisp.ربما حتى أكثر من ذلك أقول هو نمو Common-Lisp.net ويب الموقع الذي يستضيف مفتوحة المصدر المشترك اللثغة المشاريع وعدد المحلية اللثغة مجموعات المستخدمين التي انتشرت في السنوات القليلة الماضية.

"Lisp يستحق التعلم عن عميق التنوير تجربة سيكون لديك عندما كنت أخيرا الحصول على ذلك ؛ أن تجربة سوف تجعلك أفضل مبرمج بقية أيام ، حتى لو كنت لا تستخدم في الواقع يسب نفسه الكثير."

ايريك S.رايموند "كيف تصبح هاكر"

http://www.paulgraham.com/avg.html

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

ولكن إذا كنت تسير على تعلم it...by بكل الوسائل, قراءة على Lisp

حسنا, قد يكون غريبا ولكن أنا حقا لا مثل بول غراهام المقالات التي كثيرا & على اللثغة هو حقا الخام سيكون الكتاب إذا لم يكن لديك فهم بعض من Common Lisp بالفعل.بدلا من, أنا أقول تذهب سيبيل هو عملية Common Lisp.أما بالنسبة "القاتل-تطبيقات" ، Common Lisp ويبدو أن تجد مكانا لها في المحلات التجارية المتخصصة مثل ITA, لذا في حين لم يكن هناك تطبيق مرادفا CL الطريق القضبان هو روبي هناك أماكن في صناعة استخدامه إذا كنت تفعل قليلا من الحفر.

إذا عليك أن تسأل نفسك إذا كان يجب أن تعلم اللثغة ، ربما لا تحتاج إلى.

التعلم اللثغة سوف يضع جافا سكريبت في ضوء مختلف تماما!اللثغة حقا القوات لك فهم كل العودية كله "وظائف الدرجة الأولى الكائنات"-النموذج.انظر Crockfords ممتازة المادة على مخطط vs جافا سكريبت.جافا سكريبت هي ربما الأكثر أهمية اللغة في جميع أنحاء اليوم لذا فهم أفضل مفيد!

Gimp هو Script-Fu هو lipsish.هذا فوتوشوب-القاتل التطبيق.

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

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

إضافة إلى إجابات أخرى:

لأن SICP دورة (الفيديو متوفرة هنا) هو رهيبة:هل يعلم Lisp و الكثير!

القاتل التطبيق ؟ فرانز Inc. لديه قائمة طويلة من قصص النجاح, ولكن هذه القائمة تشمل فقط للمستخدمين من AllegroCL...ربما يكون هناك غيرها.بلدي المفضل هو قصة عن كلب مطيع, منذ كنت مروحة كبيرة من تحطم سوبرمان ألعاب.

التعلم Common Lisp, أنصح عملية Common Lisp.وقد التدريب العملي على النهج هذا على الأقل بالنسبة لي أسهل من غيرها من الكتب التي بحثت في.

هل يمكن استخدام Clojure اليوم اختبارات الكتابة و النصوص على رأس Java VM.في حين أن هناك أخرى اللثغة اللغات تنفيذها على JVM أعتقد Clojure لا أفضل وظيفة دمج مع جافا.

هناك أوقات عندما لغة جافا نفسه يحصل في الطريق من كتابة اختبارات كود جافا (بما في ذلك "التجارية التقليدية البرمجة").(أنا لا أقصد أن اتهام جافا -- لغات أخرى تعاني من نفس المشكلة -- ولكن انها حقيقة.لأن الموضوع ليس جافا, لن تفصيلا.من فضلك لا تتردد في بدء موضوع جديد اذا كان شخص ما يريد مناقشة ذلك.) Clojure يلغي العديد من هذه العوائق.

اللثغة يمكن استخدامها في أي مكان كنت تستخدم البرمجة التقليدية.انها ليست مختلفة, انها مجرد أكثر قوة.كتابة تطبيقات الويب ؟ يمكنك أن تفعل ذلك على Lisp, الكتابة على سطح المكتب التطبيق ؟ يمكنك أن تفعل ذلك على اللثغة ، أيا كان ، وربما يمكنك أن تفعل ذلك على اللثغة أو الثعبان أو أي البرمجة العامة (هناك بعض اللغات التي هي مناسبة مهمة واحدة فقط).

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

ليس السبب ولكن (تافهة) أوتوكاد لديه لثغة & DCL وقت التشغيل دعم.هذا هو وسيلة مريحة كتابة وحدات الماكرو (بما في ذلك ActiveX الآلي) إذا كنت لا تريد استخدام VBA أو C++ أو .صافي سدكس ، أو إذا الديزل التعبير لا قطع عليه.

الكثير من أوتوكاد وظائف هي في الواقع اللثغة الروتينية.

هذا هو الموضوع أنا نفسي فكرت لفترة من الوقت ولكن أنا لم حقا التوصل إلى قرار ، كالعادة الوقت هو المشكلة الرئيسية...;)

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

النجاح والفشل القصة:اللثغ في مختبر الدفع النفاث

مثير للإعجاب حقا قصة نجاح:اللثغة في اربيتز شركة

مقارنة وتحليل ما إذا كان استخدام اللثغة بدلا من جافا:اللثغة كبديل جافا

بناء جملة غير ذي صلة ، القراءة لا!

لا أقول هذا التطبيق القاتل ولكن يبدو أنه يمكن أن يكون بارد http://code.google.com/p/plop/

القاتل التطبيق ؟ رحلة البحث ITA Software هي واحدة.

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

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