2009-12-08 10 views
12

मैं अपने सामान्य प्रोग्रामिंग कौशल को बेहतर बनाने के लिए एक लिस्प बोली (शायद योजना, क्योंकि मैं लगातार सीख रहा हूं कि सीखने की भाषा कितनी अच्छी है) सीखने पर विचार कर रहा हूं।लिस्प मुझे एक बेहतर सी # डेवलपर कैसे बना सकता है?

इस तथ्य के अलावा कि कोई भी नई भाषा सीखने से आप सामान्य रूप से बेहतर प्रोग्रामर बनने में मदद कर सकते हैं, लिस्प सीखने से मुझे बेहतर सी # प्रोग्रामर कैसे बना सकता है?

+5

किसने इसे बंद करने के लिए मतदान किया? – ChaosPandion

+1

आप भी एफ # पर विचार कर सकते हैं। यह वीएस -2010 के साथ मुख्यधारा जा रहा है। – roufamatic

+1

यह एक अच्छा विचार है। आईडीई के लिए भाषा की तुलना में अधिक। – ChaosPandion

उत्तर

9

मुझे लगता है कि सबसे अच्छा आप एक कार्यात्मक भाषा का अध्ययन से प्राप्त कर सकते में सोचने के लिए शुरू कर रहा है एक और घोषणात्मक, कम अनिवार्य तरीके से। इससे अधिक पठनीय, रखरखाव योग्य और संगत कोड लिखने का कारण बन जाएगा।

जब आप कार्यात्मक होते हैं तो आप सीखते हैं एक और चीज शुद्ध कार्यों का महत्व है, यानी दुष्प्रभावों के बिना कार्य करता है।

और क्योंकि सी # को अधिक से अधिक कार्यात्मक और घोषणात्मक सुविधाएं जैसे कि बंद (उर्फ लैम्बदास) और LINQ मिल रही है, आप उन संरचनाओं के साथ प्रोग्रामिंग को बेहतर समझ सकते हैं। मुझे स्थगित निष्पादन को समझने में कोई परेशानी नहीं थी, सबसे आम LINQ pitfall, क्योंकि मैंने पहले ही आलसी, आलसी मूल्यांकन वाली कार्यात्मक भाषा को गड़बड़ कर दिया था।

+0

यह आपको डेटाबेस के साथ काम करने के लिए बेहतर ढंग से सुसज्जित करेगा –

+0

@somebody: हाँ, यह एक लाभ है। चूंकि एसक्यूएल एक घोषणात्मक भाषा है, इसलिए यह घोषणात्मक रूप से सोचने में मदद करता है। –

+3

मैं अपना खुद का जवाब लिख रहा था, लेकिन मूल रूप से "क्या मार्टिनो ने ऊपर कहा"। घोषणात्मक रूप से लिखना, कार्यात्मक रूप से लिखना - लिस्प आपको एक बाहरी परिप्रेक्ष्य देगा कि ये अच्छी चीजें क्यों हैं। न केवल "कार्यात्मक प्रोग्रामिंग शैलियों का परीक्षण करना आसान है", लेकिन "वाह, देखो कि मेरा प्रोग्राम कितना छोटा और अधिक एक्स्टेंसिबल है क्योंकि यह डेटा संचालित है, या क्योंकि कुंजी तर्क पैरामीटर के रूप में पारित किया जा सकता है"। जैसा कि आपने कहा था, सी # ऐसी विशेषताएं प्राप्त कर रही है जो इस तरह से काम करना आसान बनाती हैं। लिस्प आपको दिखा सकता है कि आप क्यों परवाह करते हैं। – khedron

2

एक बात के लिए, आप अंदर और बाहर रिकर्सन सीख सकते हैं।

+5

क्या आप अंदर और अंदर फिर से मतलब नहीं है? :) – Kevin

+0

@ केविन: मेरे लिए यह वाक्य रिकर्सिव की तुलना में अधिक पुनरावृत्त ("और", "फिर") महसूस करता है। मैं कहूंगा "रिकर्सन के अंदर रिकर्सन" या कुछ। –

+0

ठीक है, लिस्प के लिए, यह वास्तव में पूंछ-अंत रिकर्सन होना चाहिए, और मुझे इस बात का नुकसान हुआ है कि उदाहरण के लिए अंग्रेजी में इसका प्रदर्शन कैसे किया जाए। –

1

योजना सीखने का एक अच्छा कारण यह है कि इसे अक्सर शैक्षिक भाषा के रूप में उपयोग किया जाता है। नतीजतन, योजना के साथ लक्ष्य भाषा के रूप में लिखी कई अच्छी (अकादमिक) किताबें और कागजात उपलब्ध हैं।

गूगल:

  • EOPL
  • SICP
  • HtDP
  • लिटिल/अनुभवी/तर्क स्कीमर
4

योएल एक निबंध कुछ साल पहले about programmers knowing anything but Java लिखा था, और यही कारण है कि यह होगा योजना की तरह कुछ सीखना एक अच्छा विचार है। मुझे लगता है कि वे तर्क सी # के लिए भी जाते हैं। एक और अच्छा कारण यह है कि प्रोग्रामिंग, 'Structure and interpreation of computer programs' by Abelson and Sussman के बारे में वास्तव में अच्छी किताब है, जो योजना का उपयोग करती है और आपको विभिन्न प्रोग्रामिंग अवधारणाओं में बहुत सी नई अंतर्दृष्टि दे सकती है।

1

बस इसे सीखें और आश्चर्यचकित हो जाएं और हमें इसके बारे में बताएं।

4

आपको लिस्प सीखना चाहिए ताकि आप metaprogramming की शक्ति को समझ सकें। यदि आपने पहले से ऐसा नहीं किया है, तो आपको Emacs का उपयोग करना सीखना चाहिए और कुछ Emacs Lisp लिखने का प्रयास करना चाहिए। उसके बाद, SLIME का उपयोग कर प्रोग्रामिंग Common Lisp पर जाने का प्रयास करें।

+0

वोट दिया गया, थोड़ा सा कहते हैं कि सामान्य लिस्प के बजाय योजना के लिए जाएं। ;) मेरा मानना ​​है कि योजना के कुछ कार्यान्वयन हैं जो सीएलआर का समर्थन करते हैं, जो मूल पोस्टर के लिए अच्छा हो सकता है। –

संबंधित मुद्दे