কয়েক মাস সিএল এবং কিছুটা ক্লোজারের সাথে লিস্পের সাথে শেখার এবং খেলার পরেও আমি এখনও সি # এর পরিবর্তে এতে কিছু লেখার জন্য বাধ্যতামূলক কারণ দেখছি না।
আমি সত্যিই কিছু জোরালো কারণ চাই বা কারও পক্ষে এটি উল্লেখ করতে চাই যে আমি সত্যিই বড় কিছু মিস করছি ।
লিস্পের শক্তি (আমার গবেষণা অনুসারে):
- কমপ্যাক্ট, ভাবপূর্ণ স্বরলিপি - সি # এর চেয়েও বেশি, হ্যাঁ ... তবে আমি মনে করি যে এই ধারণাগুলি সি # তেও প্রকাশ করতে সক্ষম হব।
- ক্রিয়ামূলক প্রোগ্রামিংয়ের জন্য অন্তর্নিহিত সমর্থন - লিংক এক্সটেনশন পদ্ধতির সাথে সি #:
- mapcar =। নির্বাচন করুন (ল্যাম্বদা)
- mapcan =। নির্বাচন করুন (ল্যাম্বদা)। সমষ্টি ((a, b) => a.Uunion (b))
- গাড়ি / প্রথম =। প্রথম ()
- সিডিআর / বিশ্রাম =। ছেড়ে দিন (1) .... ইত্যাদি
- লাম্বদা এবং উচ্চতর অর্ডার ফাংশন সমর্থন - সি # এর এটি রয়েছে এবং বাক্য গঠনটি তর্কযোগ্যভাবে সহজ:
- "(ল্যাম্বদা (এক্স) (দেহ))" বনাম "এক্স => (দেহ)"
- "# (" "%", "% 1", "% 2" ক্লোজুরেতে খুব ভাল লাগছে
- অবজেক্ট থেকে পৃথক পদ্ধতি প্রেরণ - এক্স # এর এক্সটেনশন পদ্ধতির মাধ্যমে রয়েছে
- মাল্টিমোথডোপ প্রেরণ - সি # এর এ স্থানীয়ভাবে নেই, তবে আমি কয়েক ঘন্টার মধ্যে এটি একটি ফাংশন কল হিসাবে প্রয়োগ করতে পারি
- কোডটি হ'ল ডেটা (এবং ম্যাক্রোস) - সম্ভবত আমি ম্যাক্রোগুলি "অর্জিত" নাও করেছি, তবে এমন কোনও উদাহরণ আমি দেখিনি যেখানে ম্যাক্রোর ধারণাটি কোনও ফাংশন হিসাবে প্রয়োগ করা যায়নি; এটি "ভাষা" পরিবর্তন করে না, তবে আমি নিশ্চিত নই যে এটি একটি শক্তি
- ডিএসএলস - এটি কেবল ফাংশন রচনার মাধ্যমেই করতে পারে ... তবে এটি কাজ করে
- শিরোনামহীন "অন্বেষণকারী" প্রোগ্রামিং - স্ট্রাক্ট / ক্লাসের জন্য, সি # এর অটোপ্রোপার্টি এবং "অবজেক্ট" বেশ ভাল কাজ করে এবং আপনি সহজেই আরও শক্তিশালী টাইপিংয়ের সাথে এগিয়ে যেতে পারবেন
- উইন্ডোজবিহীন হার্ডওয়্যারে চলছে - হ্যাঁ, তাই না? কলেজের বাইরে, আমি কেবলমাত্র এমন একজনকে চিনি যে বাড়িতে উইন্ডোজ চালায় না, বা কমপক্ষে * নিক্স / ম্যাকের উইন্ডোজ একটি ভিএম আছে। (তারপরে আবার, সম্ভবত এটি আমার চেয়ে বেশি গুরুত্বপূর্ণ এবং আমি সবেমাত্র ব্রেইন ওয়াশ হয়েছি ...)
- নীচের অংশের নকশার জন্য REPL - ঠিক আছে, আমি স্বীকার করি এটি সত্যিই দুর্দান্ত, এবং আমি এটি সি # এ মিস করছি।
লিস্পে আমি যে জিনিসগুলি নিখোঁজ করছি (সি #,। নেট, ভিজ্যুয়াল স্টুডিও, পুনঃভাগের মিশ্রণের কারণে):
- নামস্থান। এমনকি স্থিতিশীল পদ্ধতি সহ, আমি তাদের প্রসঙ্গটি শ্রেণিবদ্ধ করার জন্য তাদের একটি "শ্রেণিতে" বেঁধে রাখতে চাই (ক্লোজুরে মনে হয় এটি সিএল বলে মনে হচ্ছে না।)
- দুর্দান্ত সংকলন এবং ডিজাইন-সময় সমর্থন
- টাইপ সিস্টেমটি আমার চারপাশে যে ডেটাস্ট্রাকচারগুলি পাস হবে তার "নির্ভুলতা" নির্ধারণ করার অনুমতি দেয়
- কোনও ভুল বানানই রিয়েলটাইমকে আন্ডারলাইন করে; জানতে রানটাইম হওয়া পর্যন্ত আমাকে অপেক্ষা করতে হবে না
- কোড উন্নতি (যেমন একটি অত্যাবশ্যক পরিবর্তে একটি এফপি পদ্ধতির ব্যবহার) স্বয়ংক্রিয়রূপে গৃহীত হয়
- জিইউআই বিকাশের সরঞ্জামগুলি: উইনফোর্ডস এবং ডাব্লুপিএফ (আমি জানি ক্লোজুর জাভা জিইউআই লাইব্রেরিতে অ্যাক্সেস পেয়েছে তবে তারা আমার কাছে সম্পূর্ণ বিদেশী))
- জিইউআই ডিবাগিং সরঞ্জামগুলি: ব্রেকপয়েন্টস, স্টেপ-ইন, স্টেপ-ওভার, মান পরিদর্শক (পাঠ্য, এক্সএমএল, কাস্টম), ঘড়িগুলি, ডিবাগ-বাই-থ্রেড, শর্তাধীন ব্রেকপয়েন্টস, কল-স্ট্যাক উইন্ডোটি যে কোনও স্তরে কোডে ঝাঁপ দেওয়ার ক্ষমতা সহ স্ট্যাকের মধ্যে
- (সত্য বলতে গেলে, ইমাসস + স্লাইমের সাথে আমার বক্তব্য এগুলির কিছু সরবরাহ করেছে বলে মনে হয় তবে আমি ভিএস জিইআই-চালিত পদ্ধতির সাথে আংশিক আছি)
আমি লিস্পকে ঘিরে হাইপটি সত্যিই পছন্দ করি এবং আমি এটির সুযোগ দিয়েছিলাম।
তবে লিস্পে আমি এমন কিছু করতে পারি যা আমি সি # তেও করতে পারি না? এটি সি # তে আরও কিছুটা ভার্বোজ হতে পারে তবে আমার স্বতঃপূরণও রয়েছে।
আমি কী মিস করছি? আমি ক্লোজার / সিএল কেন ব্যবহার করব?
AND
বা OR
কোনও ফাংশন হিসাবে তা দেখতে চাই । এটি করা যেতে পারে (প্রদত্ত LAMBDA
, যা ম্যাক্রোও) তবে এটি করার কোনও সুস্পষ্ট উপায় আমি দেখতে পাচ্ছি না যা পুরোপুরি স্তন্যপান করবে না।