লিস্পের কোন উপভাষাটি শিখতে হবে? [বন্ধ]


91

আমি জানি লিস্পের কয়েকটি পৃথক উপভাষা রয়েছে। সিদ্ধান্ত নিয়েছে যে লিস্প শেখা একটি নতুন বৌদ্ধিক অভিজ্ঞতা হবে, আমি জানতে চাই কোন লিস্পের উপভাষাটি শিখতে হবে এবং কেন।

অন্যদের চেয়ে বেশি জনপ্রিয় এমন একটি কি আছে? এর মধ্যে আরও যে কোনও "সম্পূর্ণ", আরও ভাল ডকুমেন্টেড এবং সমর্থনযোগ্য? এই উপভাষার পক্ষে কি কি?



আমি এটি জিজ্ঞাসা করার আগে আমি এটিতে অনুসন্ধান করেছি কিন্তু আমি টাইপ করার সাথে সাথে প্রশ্নের প্রকৃতি বিকশিত হয়েছিল। আমি চাকা পুনরায় উদ্ভাবন না নিশ্চিত করব।
হামফ্রে বোগার্ট

সুতরাং এই প্রশ্নটির মধ্যে পার্থক্য কী এবং উপরে গ্রেগটি উল্লেখ করেছেন?
সিজেএস

4
আমি মনে করি, তিনি যা বলার চেষ্টা করছিলেন তা হ'ল: যখন আমি প্রথম আমার প্রশ্নটি আমার মনে প্রণয়ন করলাম তখন এটি বর্তমানের চেয়ে সম্পূর্ণ আলাদা ছিল, এবং সম্পর্কিত অনুসন্ধানে প্রশ্নগুলির দিকে তাকানো কোনও বিষয়ই প্রকাশ করতে পারে নি যা সে চায় জিজ্ঞাসা তবে তিনি প্রশ্নটি টাইপ করার সময়, এটি পরিবর্তন হয়ে গিয়েছিল এবং এভাবে বর্তমান রূপে এসও-তে উপস্থিত হয়েছিল, যা আগে জিজ্ঞাসা করা হয়েছিল।
জে.পলফার

উত্তর:


77

আপনি সরলতা এবং পরিষ্কার-পরিচ্ছন্নতা, আকর্ষণীয় বৈশিষ্ট্য এবং এমন একটি প্ল্যাটফর্মের মধ্যে ভারসাম্য খুঁজতে চান যা আপনাকে আকর্ষণীয় এবং দরকারী সফ্টওয়্যার (নিজের কাছে) লেখার পাশাপাশি শেখার সরঞ্জাম হিসাবে পরিবেশন করতে দেয় allow (এটি সর্বশেষ আপনাকে আরও দীর্ঘকাল ধরে চলতে এবং শিখতে রাখবে)) এখানে কিছু সম্ভাবনা রয়েছে:

  1. পরিকল্পনা. সম্ভবত সমস্ত উপভাষার মধ্যে পরিষ্কার। এলআইএসপি থেকে স্কিমে লিটল স্কিমার অনুবাদ করা কেন এটি সন্দেহ নেই । পঞ্চম স্কিমের স্ট্যান্ডার্ড স্পেসিফিকেশন, আর 5 আরএস , নিজের মধ্যে এবং একটি দুর্দান্ত শিক্ষা; এটি আমি সবচেয়ে ভাল ভাষা এবং লাইব্রেরি স্পেসিফিকেশন হতে পারে, পাশাপাশি যুক্তিযুক্তভাবে সংক্ষিপ্ততম সংক্ষিপ্ততম। , PLT স্কিম (বর্তমানে কোলাহল) প্ল্যাটফর্ম, একটা মোটামুটি শালীন ব্যাখ্যাকারী এবং কম্পাইলার অন্তর্ভুক্ত স্ক্রিপ্টিং জন্য ভাল, এবং এছাড়াও কিছু চাক্ষুষ সরঞ্জাম এটি শেখার জন্য চমৎকার করা হয়েছে।

  2. কমন লিস্প সম্ভবত সবচেয়ে বহনযোগ্য এবং বিস্তৃত রূপ, আপনি সম্ভবত বাণিজ্যিক সফ্টওয়্যার হিসাবে কিছু লিখতে চাইলে আপনি সম্ভবত এটি চান। স্ট্যান্ডার্ডটি বিস্তৃত গ্রন্থাগারগুলি সংজ্ঞায়িত করে, এবং এর বাইরে আরও অনেকগুলি উপলভ্য রয়েছে, এতে সিএলওএস রয়েছে , যা সম্ভবত আপনাকে কোনও ওও ভাষার ভাষার চেয়ে ওও সম্পর্কে আরও বেশি শিখিয়ে দেবে, এবং কয়েকটি সংকলক খুব ভাল। অসুবিধাগুলিতে এমন কিছু ওয়ার্ট অন্তর্ভুক্ত রয়েছে যা স্কিমের নেই (যেমন ফাংশনগুলিকে বোঝায় এমন পৃথক নেমস্পেস থাকা), পরিষ্কার এবং সরল না হওয়া (যে কোনও কিছুতেই এক্সটেনশন থাকতে হয়েছিল এবং সমঝোতার প্রয়োজনীয়তা তৈরি করতে হয়েছিল) বাস্তব বিশ্বে বৃহত অ্যাপ্লিকেশনগুলির জন্য), স্বাস্থ্যকর ম্যাক্রো না থাকা এবং স্কিমের তুলনায় পুনরাবৃত্তির উপর জোর দেওয়া।

  3. ক্লোজারএটি JVM- এ চলে, যা এটি সম্ভবত জাভা বিকাশকারীদের জন্য একটি লেগ আপ দিতে পারে। এটি কয়েকটি ওয়ার্ট পেয়েছে (উদাহরণস্বরূপ, আপনাকে অবশ্যই স্পষ্টভাবে টেল কল অপ্টিমাইজেশনের জন্য জিজ্ঞাসা করতে হবে, যদিও টিভিও জেভিএম যোগ করা হলে এটি একদিন পরিবর্তন হতে পারে)। ম্যাক্রোগুলি স্বাস্থ্যকর না হয়েও আপনাকে পরিবর্তনশীল ক্যাপচার এড়াতে সহায়তা করার জন্য কিছু বৈশিষ্ট্য রয়েছে, তাই সিএল-এর চেয়ে দুর্ঘটনাক্রমে কম ঝুঁকিপূর্ণ চালানোর সময় আপনি যদি সত্যিই চান তবে আপনি ভেরিয়েবলগুলি ক্যাপচার করতে পারেন। আপনি সমস্ত জাভা লাইব্রেরিতে সহজেই অ্যাক্সেস পেয়েছেন; "রিয়েল ওয়ার্ল্ড" কোডের জন্য এটি সম্ভবত একটি ভাল জিনিস এবং শেখার ক্ষেত্রে মোটামুটি অর্থহীন। এটি অবিচ্ছিন্ন ডাটা স্ট্রাকচার এবং এসটিএমের সমর্থনের জন্য গ্রন্থাগারগুলির একটি সেট পেয়েছে, যা এটি একটি যুগল দৃষ্টিকোণ থেকে খুব আকর্ষণীয় করে তোলে; এটি সম্ভবত আপনার সেরা বাজি করে যদি আপনি ' সমবর্তী এবং সমান্তরাল প্রোগ্রামিংয়ের সাথে সম্পর্কিত নতুন পদ্ধতি সম্পর্কে আরও শিখতে আগ্রহী। এটি জাভা হিসাবে বৃহত্তর, উত্পাদনের অ্যাপ্লিকেশনগুলির জন্য যেমন ক্লোজুরের জন্য ব্যবহারযোগ্য তেমনি দেখা যাচ্ছে যে আপনি যে "কুরুচিপূর্ণ জিনিস" প্রযোজনা অ্যাপ্লিকেশনগুলিতে করতে পারবেন যা আপনি বরং করতে চান না এবং করবেন না আপনি যখন শিখছেন

  4. ইমাস লিস্প। এলআইএসপি হিসাবে, এটি সর্বোত্তম উদাহরণগুলির মধ্যে এটি নয়। এর সবচেয়ে বড় ফল্টগুলির মধ্যে একটি হ'ল ডায়নামিক স্কোপিং, তবে আরও অনেকগুলি রয়েছে। তবে, আপনি যদি ইমাস্ক ব্যবহারকারী হন তবে এটি সবচেয়ে শক্তিশালী হাতিয়ার হতে পারে যা আপনি সম্পাদকটির ব্যবহার উন্নত করতে শিখতে পারেন। ইমাস লিস্প শেখার মাধ্যমে আপনি সত্যই কতটা শিখতে চেয়েছিলেন, ইমাকগুলি কীভাবে প্রসারিত করবেন তার বাইরে, আমার কাছে তবে একটি উন্মুক্ত প্রশ্ন; আমি জানি না যে উচ্চতর অর্ডার ফাংশনগুলির মতো আকর্ষণীয় কৌশলগুলি বাস্তবে ইমাস লিস্পে ব্যবহৃত হয়।

2018 আপডেট

আমি এই পোস্টটি লেখার প্রায় এক দশক হয়ে গেছে এবং ভাষাগুলির লিস্প পরিবার এখন সাধারণ প্রোগ্রামার চেতনাতে উল্লেখযোগ্য আকর্ষণ অর্জন করছে বলে মনে হয়। এর বেশিরভাগ অংশ ক্লোজুরের সাথে সম্পর্কিত বলে মনে হয় যা কেবলমাত্র নিজের অনেক ভাল ধারণাকে পরিচয় করিয়ে দিয়ে লিস্পের যথাযথভাবে পৃথক উপভাষা হয়ে উঠেনি, তবে এখন জাভাস্ক্রিপ্টকে লক্ষ্য করে একটি অদৃশ্য সংস্করণ রয়েছে এবং অন্যান্য অনেক লিপ্সকে অনুপ্রাণিত করেছে অন্যান্য প্ল্যাটফর্মগুলি লক্ষ্য করে। উদাহরণস্বরূপ, হাই সিপিথন এএসটি এবং বাইটকোডকে লক্ষ্য করে, পাইথনের সাথে আন্তঃব্যবহারের জন্য প্রথমে লক্ষ্য রেখেছিল, তবে ক্লোজার আইডিয়া ব্যবহার করে "সন্দেহ হলে"। (যদিও সর্বশেষতম কমিটগুলি থেকে, পরবর্তীকালে কিছুটা পরিবর্তন হতে পারে))

এটি আপনার সিদ্ধান্ত গ্রহণের প্রক্রিয়ায় যে বড় পরিবর্তন এনেছে তা হ'ল লিস্পস বা লিস্প-এর মতো ভাষা যা পাওয়া যায় সেদিকেও নজর দেওয়া উচিত এবং আপনি ইতিমধ্যে যে ভাষা বা প্ল্যাটফর্ম ব্যবহার করেন সেগুলিতে হস্তক্ষেপ করুন , সে পার্ল , রুবি , এরলং , যান বা এমনকি মাইক্রোকন্ট্রোলারগুলিতে সি ++


4
পৃথক নেমস্পেস থাকা কোনও ওয়ার্ট নয়, এটি কেবল একটি ভিন্ন ডিজাইনের সিদ্ধান্ত। মনে রাখবেন যে স্কিমটিতে ইতিমধ্যে আরও বেশ কয়েকটি নেমস্পেস রয়েছে, সুতরাং বিতর্কটি বরং লিস্প -6 এর বিপরীতে লিস্প -5। সিএলে একটি তালিকা "তালিকা" এবং একটি গাড়িকে "গাড়ি" বলতে পারি সেই সুবিধাগুলি বাদে এর ম্যাক্রো সিস্টেমটি আরও অনেক বেশি ব্যবহারিক এবং দরকারী, কারণ সংকলক জিনিসগুলিকে এত সহজে বিভ্রান্ত করে না।
সোভান্তে

ক্লোজারে টেল কল অপ্টিমাইজেশন নেই, এবং এটি করতে পারে না, কারণ জেভিএম বাইটকোড এটি সমর্থন করে না। এটির সবই একটি "পুনরাবৃত্তি" বিশেষ ফর্ম যা বর্তমান ফাংশনটিকে স্ব-পুনরাবৃত্তি করে।
সোভান্তে

4
কর্ট: আমি যুক্তি দিয়েছি যে জাভা ভিএম-তে চালিত হওয়ার কারণে ক্লোজার সবচেয়ে পোর্টেবল।
justinhj

4
আমি যে বিষয়ে জানি না; আপনি যদি ছোট এবং এমবেডেড ডিভাইসগুলি (যেমন টেলিফোন এবং স্মার্ট কার্ড) বাদ দেন যেখানে আপনি যে কোনও উপায়ে পরিবর্তনিত ডেস্কটপ / সার্ভার প্রোগ্রাম চালাচ্ছেন না, তবে এলিস্প অবশ্যই জেভিএমের চেয়ে অনেকগুলি সিপিইউ এবং প্ল্যাটফর্মগুলিতে চলে।
সিজেএস

4
আমি দৃ strongly়ভাবে একমত না। পুনরাবৃত্তি এমন কোড তৈরি করে যা ক) আরও খাঁটি, খ) যাচাই করা সহজ, গ) সঠিক হওয়ার সম্ভাবনা বেশি। আরও বিশদে: ক) এটি ফাংশনের বাইরে কম ভেরিয়েবল স্পর্শ করতে কম ঝোঁক; খ) একটি প্ররোচিত প্রমাণ প্রাকৃতিকভাবে পুনরাবৃত্ত ফাংশনটি বাদ দেয়, অন্যদিকে লুপের সাহায্যে আপনাকে লুপ আক্রমণকারী ইত্যাদি পরীক্ষা করতে হবে; গ) নির্ভরযোগ্যতা ক এর কাছ থেকে আসে) এবং আপনাকে এমনভাবে কোডের দিকে ঠেলে দেওয়া হয় যা প্রাকৃতিকভাবে আপনাকে তোলে (সম্ভবত অনানুষ্ঠানিকভাবে খ এর প্ররোচক প্রমাণ)।
সিজেএস

22

আমি স্কিম বলব, কেবলমাত্র লিটল স্কিমারের কারণে , যা সবচেয়ে মন-মাতাল করার মতো একটি মজার তবুও আমি কখনও পড়ার চেষ্টা করেছি এমন অত্যন্ত শক্ত বই।


15
এসআইএসপি ভুলে যাবেন না! mitpress.mit.edu/sicp । এটি একটি ক্লাসিক পড়া।
জোরিস টিমারম্যানস

7
সেখানে দুটি বা তিনটি সংস্করণ ছিল লিটল Lisper আগে লিটল স্কিমার যারা একটি অনুবাদ হিসাবে এসেছেন।
সিজেএস


8

এছাড়াও ক্লোজুরে এই দিনগুলিতে প্রচুর মনের শেয়ার লাভ করছে এবং সঙ্গত কারণেই। দুর্দান্ত ডেটা স্ট্রাকচার, গভীরভাবে ভাল সমঝোতা সমর্থন (এক্ষেত্রে স্কিম এবং সিএলকে লজ্জা দেয়) এবং একটি দুর্দান্ত সম্প্রদায়। এটিও তুলনামূলক সহজ, সিএল কমপক্ষে সি ++ এর মতো জটিল।

এটি আমি সিএল বা স্কিম উপভোগ করি না তা বলার অপেক্ষা রাখে না। আমি এসআইসিপি দিয়ে স্কিম শিখেছি। এবং সিএল আমাকে ক্লোজুরে নিয়ে এসেছিল। আমি মনে করি এটি আপনার লক্ষ্যগুলির উপর নির্ভর করে। আপনি যদি একটি লিপ্প শিখতে চান যা প্রচুর ব্যবহারিক হয় ক্লোজারের জন্য যান। অন্যথায় সিএল বা স্কিম দুটিই দুর্দান্ত।


এটি বোঝায় যে সিএল বা স্কিম দুটিই "অত্যন্ত বাস্তব" নয়, যদিও তারা বাস্তবে বেশ ব্যবহারিক practical বিশেষত সিএল স্ট্যান্ডার্ডটি ব্যবহারিক বিবেচনার দ্বারা জন্ম নিয়েছিল ।
লেসেলি পি। পোলজার

4
প্রোগ্রামিং ভাষার ল্যান্ডস্কেপ ১৯৯৪ সাল থেকে পরিবর্তিত হয়েছে, আমি জানি না যে সিএল স্ট্যান্ডার্ড কীভাবে সেই সময়ের থেকে যা শিখেছে তা সামঞ্জস্য করার জন্য কীভাবে পরিবর্তন / বিকাশ ঘটবে। বিশ্ব এগিয়ে চলছে এবং যতদূর আমি বলতে পারি সিএল দাঁড়িয়ে আছে। আমি সিএল পছন্দ করি, ক্লোজুরের তার ক্ষমতার কাছে যাওয়ার কিছু উপায় আছে তবে আমি দেখতে পাচ্ছি না সিএল কীভাবে বিকশিত হতে চলেছে- আপনি যদি একটি প্রমিত ভাষা ব্যবহার করতে চলেছেন তবে একটি বিবর্তনীয় পথ অবশ্যই স্পষ্ট হওয়া উচিত। তা ছাড়া, একটি ভাষা খুব সম্ভবত না বাস্তবসম্মত পছন্দ।
ডোলেন

4
সিএল বিকশিত হয়েছে এবং প্রচুর দরকারী লাইব্রেরির মাধ্যমে বিকশিত হচ্ছে। ভিত্তি ভাষা ইতিমধ্যে 1994 সালে সমস্ত "আধুনিক" ভাষার তুলনায় আরও শক্তিশালী ছিল।
সোভান্তে

5

আমি সিএল পছন্দ করি, যেহেতু আমি অবজেক্ট-ভিত্তিক প্রোগ্রামিং পছন্দ করি এবং সিএলওএস হ'ল চারপাশের সর্বোত্তম অবজেক্ট সিস্টেম।


4
সিএলের কথা বললে, আমি ক্লোজিউরসিএল বা এসবিসিএল সুপারিশ করব। উভয়ই ওপেন সোর্স, ভাল-ডকুমেন্টেড, পরিপক্ক, মাল্টি-প্ল্যাটফর্ম এবং মাল্টিথ্রেডিংয়ের মতো গুরুত্বপূর্ণ অ-মানক কার্যকারিতা সরবরাহ করে।
ড্যানিয়েল ডিকিসন

5

স্কুলে স্কিম শিখেছি । এটি একটি দুর্দান্ত শেখার অভিজ্ঞতা ছিল এবং আমি কার্যকরী প্রোগ্রামিংয়ের মূলসূত্রগুলি কখনই ভুলব না। আপনি সম্ভবত এলআইএসপি-র কোন সংস্করণটি বেছে নেবেন, যতক্ষণ না আপনি এর দরকারীতার মূল বিষয়টি বুঝতে পারবেন না - রাষ্ট্রবিহীন ল্যাম্বদা ক্যালকুলাস।

এমআইটি কেন তার প্রারম্ভিক প্রোগ্রামিং কোর্সে স্কিম থেকে পাইথন সরিয়ে নিয়েছে একটি আকর্ষণীয় নিবন্ধ এখানে's


3

আমি তাদের সবাইকে বলব, কমপক্ষে প্রথমে। শেষ পর্যন্ত আপনি সম্ভবত স্কিম বা কমন লিস্পের জন্য একটি অগ্রাধিকার বিকাশ করতে পারবেন তবে তাদের উভয়ের মধ্যে যথেষ্ট পার্থক্য রয়েছে যে সেখানে থাকা সমস্ত কিছুর উপর হ্যান্ডেল পাওয়া ভাল।

উদাহরণস্বরূপ, স্কিমটির ধারাবাহিকতা রয়েছে এবং স্কিমের মধ্যে সেগুলি সম্পর্কে সাধারণভাবে লিস্পে প্রয়োগ করা যেতে পারে তবুও তাদের সম্পর্কে জানা ভাল good

লেক্সিকাল এবং ডায়নামিক স্কোপ এর মধ্যে পার্থক্য শেখা গুরুত্বপূর্ণ, এবং আপনি যদি কমন লিস্প এবং এলিসপ উভয়ই শিখেন তবে আপনি উভয়েরই বোঝা জুড়ে আসবেন।


0

এলএফই (লিস্প ফ্লেভার্ড এরলং) দুর্দান্ত লাগবে। আপনি এরলং ভিএম এর উপরে লিসপ সিনট্যাক্স রাখতে পারেন।


0

শুরু করার জন্য এক ধরণের "বোঝা" প্রশ্ন ছিল তবে ওপি সম্ভবত এটি সম্পর্কে জানত না। সাধারণত, কমন এবং স্কিম লিসারগুলি পিসি এবং অ্যাপল কম্পিউটার "লোক" এর মতো হয়, তারা মেশে না। কোনটি সবচেয়ে ভাল তা সম্ভবত আপনার পক্ষে কোনটি "কাজ করে" তেমন প্রাসঙ্গিক নয়। সত্যিই, এত পার্থক্য নেই। আপনি প্রথমে যা শিখেন তার দ্বারা প্রভাবিত হতে পারে একে অপরের পক্ষে সম্ভবত পছন্দ ference (আমার কাছে, একটি খালি তালিকা "কিছুই নয়" হওয়া উচিত, সিএল হিসাবে এনআইএল হিসাবে পরিচিত, এবং এটি আমাকে একটি কমন লিস্পার করে তোলে)) আমি এসএমসিএলকে স্লিমের সাথে ইএমএসিএস ব্যবহার করে একীকরণ পছন্দ করি তবে এসবিসিএল সবার জন্য নয়। একটি বিষয়, এসবিসিএল খুব কঠোর। আপনি যদি কেবল "মজা" করতে চান তবে জিএনইউ ক্লিপপ কার্যত প্রতিটি প্ল্যাটফর্মের জন্য সহজ এবং উপলভ্য।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.