হাস্কেল এবং লিস্প বনাম হাস্কেল বা লিস্প [বন্ধ]


40

আমি বর্তমানে সি, সি ++, এবং পাইথনের সাথে কোড করছি। আমি একটি কার্যকরী প্রোগ্রামিং ভাষা তুলতে চাই এবং এখনই আমি হাস্কেলের দিকে ঝুঁকছি। আমি এখানে "হাস্কেল বনাম লিস্প" যুদ্ধ শুরু করতে চাই না; আমি যা জানতে চাই তা হ'ল: আমি যদি প্রাথমিকভাবে ফাংশনাল প্রোগ্রামিংয়ের সংস্পর্শের জন্য হাস্কেলকে শিখি তবে লিস্প শিখতে পেরে আমি কী লাভ করব?


1
এবং এফ # এবং ক্লোজার
CND

উত্তর:


58

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

কমন লিস্পের সাহায্যে আপনি হাসকলের কাছ থেকে মনড, তরকারী এবং আপনার পছন্দ মতো সমস্ত কিছু যুক্ত করতে পারেন, তবে আপনি ফ্র্যাঙ্ক শিয়েরার মতো একাধিক উত্তরাধিকার এবং একাধিক প্রেরণের সাথে জেনেরিক ফাংশন এবং একটি উন্নত ব্যতিক্রম হ্যান্ডলিং সিস্টেম পাবেন।

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


6
আমি মনে করি আপনি এটি পেরেক দিয়েছিলেন - যা হাস্কেল এবং স্মলটালককে শেখার জন্য এতটা দরকারী করে তোলে তা হ'ল তাদের বিশুদ্ধতা।
ফ্রাঙ্ক শায়ারার

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

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

31

এবং দয়া করে।

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

লিস্প সত্যিই ভাষার একটি পরিবার, তাই আমি কমন লিস্প সম্পর্কে কথা বলব কারণ এটি আমার ব্যবহৃত পরিবারের বিশেষ সদস্য।

লিস্পে এখনও আপনাকে শেখানোর প্রচুর পরিমাণ থাকবে:

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

11

পরে লিস্প শিখতে আপনাকে ইমাসকে কাস্টমাইজ করতে দেয় যা তর্কযোগ্যভাবে সর্বাধিক উন্নত পাঠ্য সম্পাদক হিসাবে উপলব্ধ। আপনি হাসকেলে এটি করতে পারবেন না।



6
হতে পারে যে কেউ এর জন্য একটি পাঠ্য সম্পাদক লিখতে পারেন। আমি শুনেছি যে ইমাস অপারেটিং সিস্টেমটি একটি নিয়ে আসে না। (আমি বাচ্চা। আমি জানি আপনি ভাইপার মোড পেতে পারেন :) :)
গ্রেফ্যাড

14
আসলে, ইআই নামে একটি ইমাস্যাক্স-ক্লোন রয়েছে, যা হাসাকেলকে ঠিক ঠিক একইভাবে ব্যবহার করে যেমন ইমাস লিসপ ব্যবহার করে। প্রকৃতপক্ষে, (জিএনইউ) ইমাক্সের তুলনায়, ইয়ে আরও বিশুদ্ধ, কারণ এর কার্নেলটি হাস্কেলতেও লেখা আছে, যেখানে ইমাস কার্নেলগুলি সাধারণত লিস্পে লেখা হয় না। জিএনইউ ইম্যাকস 'কার্নেলটি সি-তে লেখা আছে, জেম্যাকস' জাভাতে লেখা হয়েছে, উদাহরণস্বরূপ।
Jörg ডব্লু মিটাগ

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

1
@ Thorbjørn Ravn অ্যান্ডারসনকে: হ্যাঁ, কিন্তু বেশ যে খারাপ। :)
গ্রেফেইড

11

হাস্কেল এবং লিস্প দুটি সম্পূর্ণ ভিন্ন জন্তু।

হাস্কেল হলেন "আইভরি টাওয়ারে খাঁটি ফাংশনাল প্রোগ্রামিং"

লিস্পটি হ'ল "কোড-ইজ-ডেটা / ডেটা-কোড-কোড / আপনার নিজের ভাষা নির্মাণ করুন"। আপনি যেভাবে কল্পনা করতে পারেন আপনার কোডটি পরিচালনা করতে পারেন।

তারা খুব আলাদা। উভয়ই "ক্রিয়ামূলক প্রোগ্রামিং" দিকটি ভাগ করে তবে তাদের পার্থক্যের তুলনায় এটি সত্যিই একটি ছোট্ট সাধারণ পয়েন্ট। কেবল তাদের চেষ্টা করে দেখুন এবং দেখুন তারা কতটা আলাদা!


+1: ভাল পয়েন্ট। আমি কিছু হাস্কেল এবং কিছু লিস্পকে জানি। যদিও আমি তাদের দুজনের মধ্যেও বিশেষজ্ঞ নই, আমি মনে করি আপনি ঠিক বলেছেন যে তারা খুব আলাদা। হাস্কেল-তে আপনার কোড হিসাবে ডেটা ব্যবহার করার ধারণা নেই। লিস্পে আপনার (এএফআইকে) প্যাটার্নের মিল নেই। সম্ভবত পার্থক্যগুলির তালিকা (!) দীর্ঘতর।
জর্জিও

7

লিস্প শেখার মাধ্যমে আমি যে প্রধান উপকারটি দেখছি তা হ'ল কেবলমাত্র বিশুদ্ধতার উপর জোর দেওয়া এমন একাডেমিক ভাষার প্রেক্ষাপটে এফপিটিকে কীভাবে একটি বাস্তব-বিশ্বমুখী বহু-বহুভাষা ভাষায় সংহত করতে হয় তা শিখতে।


5
আমার ধারণা আপনি "হাস্কেল বনাম লিস্প" যুদ্ধ চান!
ডন রবি

3
হাস্কেল হ'ল একাডেমিক ভাষা যা বিশুদ্ধতার উপর জোর দেয় ... এবং প্রচুর লোক এটি বাস্তব বিশ্বে ব্যবহার করে। ছোট্টটালকও সেই শিবিরে।
ফ্রাঙ্ক শিয়েরার

আসল বিশ্বে প্রচুর লোক হাসকলকে ব্যবহার করে?
জন হ্যারোপ

1
@ জোন হ্যারোপ: আচ্ছা, আমি আসল বিশ্বে হাস্কেল ব্যবহার করি (এবং এটি কিছু নির্দিষ্ট অ্যাপ্লিকেশনগুলির জন্য সত্যই কার্যকর কাজ করে), সম্ভবত আমি কয়েকটি (?) এর মধ্যে একজন
জর্জিও

5

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

সুতরাং আমি একটি বহু-দৃষ্টান্তের ভাষা ব্যবহার করেছি (অর্থাত স্কাল, তবে লিস্প সম্ভবত বিলটি ফিট করবে) এফপিতে যাওয়ার জন্য ভাল উপায়। তবে আপনি যদি হাসকেলে ডুব দিয়ে খুশী হন (আমি ছিলাম না) তবে এর জন্য যান।


আকর্ষণীয় যে আপনি ওস্যামেলের চেয়ে স্কালার সাথে আরও পেয়েছেন। কিভাবে?
জন হ্যারোপ

@ জন: ভাল প্রশ্ন; বলা কঠিন. সম্ভবত আমি তখন "কার্যত" প্রবেশ করতে প্রস্তুত ছিলাম না। সম্ভবত আমি ঠিক মাত্র একটি স্তরের টিউটোরিয়াল ডান স্তরে খুঁজে পেয়েছি। হতে পারে স্কালার সি / সি ++ / জাভা বংশ কেবল এটিকে কিছুটা কম ভিনগ্রহ করে তুলেছে। এই দিনগুলিতে যে কোনও যৌক্তিক বাজি দেওয়া হয়েছে তা স্কেলার পরিবর্তে এফ # তে থাকবে, আমি সম্ভবত কিছু সময় ওসিএএমএল ডোমেনটি আবার ঘুরে দেখব, যদিও আমি আমার সি ++ এ আলাদা "প্রোগ্রামিং মানসিকতা" এ নেমে যাওয়ার নিখুঁত আনন্দের জন্য এই জিনিসটিতে ঝাঁপিয়ে পড়েছি since ডেজব, আমার পরের দিকে আবার হাসকলকে আবার চেষ্টা করার একটা বিকৃত প্রবণতা রয়েছে।
দিন

মসৃণ চলন্ত পদ্ধতির :)
ইনিল

2

আমি মূলত একটি সি / সি ++ / রুবি ব্যাকগ্রাউন্ড থেকে এসেছি এবং আমি যখনই পারতাম রুবিতে এফপি ধারণা ব্যবহার করেছি। রাজ্য শুধু আমার মস্তিষ্কে আহত। আমার এক বন্ধু আমাকে একদিন ডেকেছিল, এবং তিনি আমাকে হাস্কেলতে কিছু লিখতে বললেন (আমার প্রথম - এবং আশা করি শেষ নয় - হাস্কেল চাকরী!)। আমি তাড়াতাড়ি ভাষা শিখেছি এবং আমি এমন কিছু কাজ করেছি যা কাজ করে। এটি সুন্দর বা কিছুই ছিল না, তবে এটি কার্যকর ছিল।

আমি হাস্কেল থেকে এক মাসের বিরতি নিয়েছি কারণ এটি ব্যবহারের মতো আমার কাছে কিছু ছিল না। তবে যখন আমি সিদ্ধান্ত নিয়েছিলাম আমার নিজের ব্লগ সফ্টওয়্যারটি লেখার দরকার আছে তখন আমি হাস্কেল ( https://symer.io ) ব্যবহার করেছি । হাস্কেল সত্যিই দুর্দান্ত কারণ আপনি কোনও সমস্যা ভাঙতে পারেন এবং ইনপুটের উপর ভিত্তি করে এই অংশগুলি আলাদাভাবে প্রয়োগ করতে পারেন। হাস্কেল মূল্যবোধের বুদ্ধিমান বক্সিংয়ের মাধ্যমে ব্যর্থতাও খুব ভালভাবে পরিচালনা করে। এই বাক্সগুলির সাথে কাজ করার জন্য অনেকগুলি সরঞ্জাম রয়েছে যা আপনি কেবল ভুলে যান যে সেগুলির অস্তিত্ব রয়েছে।

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

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

টিএল; টিআর হাস্কেল তাজা বাতাসের শ্বাসকষ্ট এবং লিসপ কিছুটা বেশি কার্যকরী রুবি।

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