কেন আমি লিস্প শিখব? [বন্ধ]


125

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

জটিল জটিল বাক্যবিন্যাস দ্বারা আমি বিদায় নিচ্ছি না, তবে "traditionalতিহ্যবাহী বাণিজ্যিক প্রোগ্রামিং" এ আমি কোথায় এমন জায়গাগুলি খুঁজে পাব যেগুলি পদ্ধতিগত ভাষার পরিবর্তে এটি ব্যবহার করা বোধগম্য হবে।

লিস্পে লেখা আছে এমন কোনও বাণিজ্যিক ঘাতক-অ্যাপ রয়েছে কি?


5
যা নেই তা থেকে দূরে রাখা কঠিন।
কাজ

ফিলিপ গ্রিনস্পানের পুনঃসূচনা পড়ুন । এটি আসল লিস্পের কাজ নিয়ে ছড়িয়ে পড়ে।
কাজ

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

এখানে লিস্পে উন্নত কিছু অ্যাপস রয়েছে
ইমাকস

উত্তর:


55

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

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

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


5
আপনি কেন বলেন যে লিস্প কেবল এআইয়ের পক্ষে ভাল? এছাড়াও, এটি একটি বহুমাত্রিক ভাষা। কার্যকরী হ'ল এটি সক্ষম করে এমন কয়েকটি দৃষ্টান্তগুলির মধ্যে একটি।
Luís Oliveira

6
আমি এটিকে এআইয়ের জন্য কেবল ব্যবহৃত বলিনি, আমি বলেছিলাম এর প্রধান ব্যবহারগুলির মধ্যে একটি হল এআই। আপনি কি এটি পড়েছেন?
জাস্টিন বেনেট

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

23
@ জাস্টিনবেনেট হ্যাঁ আপনি এটি বলেছেন। এখানে: "সংক্ষেপে, লিস্প (বা স্কিম) শেখার ফলে এআই এর বাইরে অনেকগুলি ব্যবহারিক প্রয়োগ হতে পারে না"। ভুল হওয়ার সময় লোকেরা যখন মুখোমুখি হয় তখন আমি ঘৃণা করি।
লুকা রামিশভিলি

127

লিস্প একটি বৃহত এবং জটিল ভাষা এটি সমর্থন করার জন্য একটি বৃহত এবং জটিল রানটাইম সহ। যে কারণে লিস্প বড় এবং জটিল সমস্যার পক্ষে সবচেয়ে উপযুক্ত।

এখন, এক জটিল সমস্যা হিসাবে একই নয় জটিল এক। একটি জটিল সমস্যা হ'ল অনেকগুলি ছোট বিবরণ সহ, তবে যা কঠিন নয়। এয়ারলাইনের বুকিং সিস্টেম লেখা একটি জটিল ব্যবসা, তবে পর্যাপ্ত অর্থ এবং প্রোগ্রামার সহ এটি কঠিন নয়। পার্থক্য পাবেন?

একটি জটিল সমস্যা হ'ল যা সঙ্কুচিত, এমন একটি যেখানে traditionalতিহ্যবাহী বিভাজন এবং বিজয় কাজ করে না। একটি রোবট নিয়ন্ত্রণ করা, বা টেবুলার নয় এমন ডেটা নিয়ে কাজ করা (উদাহরণস্বরূপ ভাষা), বা অত্যন্ত গতিশীল পরিস্থিতি।

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

তাঁর বিখ্যাত বই পিএআইপি-তে নরভিগ বলেছেন যে লিসপ অনুসন্ধানের প্রোগ্রামিংয়ের জন্য আদর্শ। এটি হ'ল, এমন কোনও সমস্যার সমাধানের প্রোগ্রামিং যা সম্পূর্ণ বোঝা যায় না (অন-লাইন বুকিং সিস্টেমের বিপরীতে)। অন্য কথায়: জটিল সমস্যা

তদতিরিক্ত, লিস্প শেখা আপনাকে এমন কিছু মৌলিক কথা স্মরণ করিয়ে দেবে যা ভুলে গেছে: ভন নিউমান এবং টুরিংয়ের মধ্যে পার্থক্য। যেমনটি আমরা জানি, টিউরিংয়ের গণনার মডেল একটি আকর্ষণীয় তাত্ত্বিক মডেল, তবে কম্পিউটার ডিজাইনের মডেল হিসাবে অকেজো। অন্যদিকে ভন নিউমান, কম্পিউটার এবং গণনা চালানোর জন্য কীভাবে মডেলটি তৈরি করেছিলেন: ভন নিউমান মডেল। ভন নিউমান মডেলটির কেন্দ্রস্থল হ'ল আপনার কাছে একটি মাত্র মেমরি রয়েছে এবং সেখানে আপনার কোড এবং আপনার ডেটা উভয়ই সংরক্ষণ করুন। সাবধানতার সাথে লক্ষ্য করুন যে একটি জাভা প্রোগ্রাম (বা সি #, বা যা আপনার পছন্দ হয়) টুরিং মডেলের প্রকাশ। আপনি একবার এবং সর্বদা আপনার প্রোগ্রামটি কংক্রিটে সেট করেছেন। তারপরে আপনি আশা করেন যে আপনি এতে থাকা সমস্ত ডেটা মোকাবেলা করতে পারবেন।

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

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

এই পরিচিতির সাহায্যে আমি অবশেষে আপনার প্রশ্নের জবাব দিতে পারি: আপনি কি এমন জায়গাগুলি খুঁজে পাবেন যেখানে এটি "traditionalতিহ্যবাহী" ভাষাগুলির চেয়ে বড়?

আপনি যদি উন্নত প্রোগ্রামার হন তবে আপনার উন্নত সরঞ্জামের প্রয়োজন। এবং লিস্পের চেয়ে উন্নত কোনও সরঞ্জাম নেই। অথবা, অন্য কথায়: আপনার সমস্যাগুলি যদি শক্ত হয় তবে উত্তরটি হ্যাঁ। অন্যথায় না।


30
"তবে পর্যাপ্ত অর্থ এবং প্রোগ্রামার দিয়ে এটি কঠিন নয়" - যে বলেছে, পর্যাপ্ত পরিমাণ প্রোগ্রামার দেওয়া থাকলে তা অসম্ভব হয়ে যায় ;-)
জোনাস কলকার

আমি ফ্লিসে কোড উত্পন্ন করার জন্য লিসপসের ক্ষমতা সম্পর্কে পড়েছি, তবে আমি এটিও পাঠ করেছি যে এটি সংকলন করা যায় .. এমন কোনও বাস্তবায়ন রয়েছে যা ব্যাখ্যা ও সংকলিত সম্পাদনকে মিশ্রিত করতে পারে? বা যার নিজস্ব সংকলক রয়েছে?
কেনটুরিয়ান_স্লাগ

@ সেন্টারিয়ান_স্লাগ: হ্যাঁ, একেবারে। এটা শক্তির অংশ। ইচ্ছাকৃতভাবে পঙ্গু করা হয়নি এমন যে কোনও সংস্করণটির রানটাইমগুলিতে এর সংকলক / দোভাষী পাওয়া যাবে। সুতরাং, উদাহরণস্বরূপ, একজন বিকাশকারী তার ওয়েব সার্ভারে একটি বিশেষ সংযোগে লগইন করতে পারে, কিছু ডিবাগ করতে পারে, কিছু শ্রেণি এবং ফাংশন সংজ্ঞা আপডেট করতে পারে এবং প্রয়োজনে সেই সংজ্ঞাগুলির উপর নির্ভর করে যা কিছু সম্ভব তা পুনরায় কম্পাইল করতে পারে। সার্ভারটি শেষ এবং চলমান অবস্থায়। সম্ভবত একটি এন্টারপ্রাইজ আইনি না সক্স সম্মতি সম্পর্কে চিন্তিত, কিন্তু যে এক কারণে শিল্পের মত জাভা এবং C # braindead ভাষায় ব্যবহার করেন
জেমস


46

জটিল সিনট্যাক্স ??

লিস্পের জন্য বাক্য গঠনটি অবিশ্বাস্যভাবে সহজ

লিস্পে লেখা খুনি অ্যাপ্লিকেশন: ইমাস । লিপ্প আপনাকে কোনও সম্পাদক যে কাজটি করতে পারে তা ভাবতে পারে এমন প্রায়শই কিছু করতে ইচ্ছায় ইমাস প্রসারিত করতে দেয়।

কিন্তু , আপনি শুধুমাত্র পাতার মর্মর শেখা উচিত যদি তোমরা চান , এবং আপনি কি কখনো কর্মক্ষেত্রে ব্যবহার করতে না পেতে পারেন, কিন্তু এটি এখনও সন্ত্রস্ত।

এছাড়াও, আমি যুক্ত করতে চাই: এমনকি যদি আপনি এমন জায়গাগুলি খুঁজে পান যেখানে লিস্পটি বোঝা যায় তবে আপনি সম্ভবত অন্য কাউকে বোঝাতে পারবেন না যে এটি জাভা, সি ++, সি #, পাইথন, রুবি ইত্যাদি ব্যবহার করা উচিত over


@ জাস্টিন: সম্ভবত এটি লক্ষ করার মতো যে ইমাস্যাক্স কোর সিতে লেখা হয়েছিল তবে এটি কেবল নিট-পিকিং - সমস্ত কমান্ড এলিজপে লেখা আছে।
বার্নার্ড

3
বা বরং - সাধারণ লিস্পের মূল বাক্য গঠনটি সহজ। ডিফম্যাক্রো সিনট্যাক্সটি প্রসারিত করতে দেয় এবং কিছু অন্তর্নির্মিত ম্যাক্রো (যেমন ডিফম্যাক্রো) অবিশ্বাস্যরকম জটিল হতে পারে; ল্যাম্বদা তালিকাগুলি, নেস্টেড ব্যাককোটিস ইত্যাদি
অ্যারন

Emacs এর সি অংশটি আঠালো কোড বলা প্রায় ন্যায্য।
লুকা রামিশভিলি

ইমাস রেফারেন্স ম্যানুয়াল অনুসারে, "ইমাসে সম্পাদনার বেশিরভাগ কমান্ড লিস্পে লেখা রয়েছে; কিছু ব্যতিক্রম লিস্পে লেখা যেতে পারে তবে দক্ষতার পরিবর্তে সি ব্যবহার করতে পারেন।" gnu.org/software/emacs/manual/html_mono/emacs.html#Intro
dpritch

25

আমি প্রথম হাতের অভিজ্ঞতা থেকে উত্তর দিতে পারি না তবে পল গ্রাহাম লিস্পে কী লিখেছেন তা আপনার পড়া উচিত । "খুনি-অ্যাপ" অংশ হিসাবে, গড় পিটুন পড়ুন ।


2
+1 টি। এই উত্তরে ইয়াহু স্টোর উল্লেখ করা উচিত, প্রথম ওয়েব অ্যাপ্লিকেশনটি আংশিকভাবে লিস্পে লেখা হয়েছিল। উইকিপিডিয়াটির উদ্ধৃতি: 1998 সালে ইয়াহু! ইনক। ইয়াহুয়ের ৪৫৫,০০০ শেয়ারে ভায়াবকে কিনেছে! স্টক, যার মূল্য প্রায় 49 মিলিয়ন ডলার, এবং এটির নামকরণ ইয়াহু! সংরক্ষণ করুন।
স্টিভেন লু

17

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


9

আপনি যদি প্রোগ্রামিং পছন্দ করেন তবে এর শুদ্ধ আনন্দের জন্য আপনার লিপ্প শিখতে হবে। এক্সকেসিডি বুদ্ধিদীপ্ত জ্ঞান যা পুরোপুরি প্রকাশ করে তা পুরোপুরি প্রকাশ করে। বৌদ্ধ সন্ন্যাসীর জন্য ধ্যান কী হয় তা প্রোগ্রামারটির জন্য লিস্প শেখা (এবং আমি এটি কোনও নিন্দাকারী বিন্যাস ছাড়াই বোঝাতে চেয়েছিলাম)।


9

ছোট্ট ডিএসএল তৈরির জন্য লিস্প খুব কার্যকর। আমি কাজ চলমান একটি বাক্সে লিস্পের একটি অনুলিপি পেয়েছি এবং এসকিউএল সার্ভারের ডেটাবেসগুলি জিজ্ঞাসাবাদ করতে এবং সি # তে ডেটা স্তর ইত্যাদি তৈরি করার জন্য আমি ছোট ডিএসএল লিখেছি। আমার সমস্ত বয়লার প্লেট কোডটি এখন লিস্প ম্যাক্রোগুলিতে লেখা আছে যা সি # তে আউটপুট দেয়। আমি এটি দিয়ে HTML, এক্সএমএল, সমস্ত ধরণের জিনিস উত্পন্ন করি। আমি যখন ইচ্ছা করি যে আমি প্রতিদিনের কোডিংয়ের জন্য লিস্প ব্যবহার করতে পারি তবে লিস্প ব্যবহারিক সুবিধা বয়ে আনতে পারে।


আমি এর জন্য dotlisp.sourceforge.net/dotlisp.htm ব্যবহার করি ।
মার্ক হার্ট

5

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

(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))))))

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

1
এটিকে কিছুটা সহজ করার জন্য আপনি স্ট্যান্ডার্ডটি ব্যবহার করতে পারেন letএবং এটি পরিবর্তন না হওয়ায় defunসংজ্ঞা দেওয়ার জন্য ফাংশনটির শুরুতে একটি ব্যবহার করতে পারেন fn
অ্যারন রবসন

4
@ ফেরেটালিকিয়া কোন ভিত্তিতে আপনি নির্ধারণ করেন যে কোনও কিছু "সহজেই মানুষের পাঠযোগ্য" বা "স্ব বর্ণনার"? ইংরেজির সাথে মিল? চীনা কি "সহজেই মানুষের পাঠযোগ্য"? গাণিতিক স্বরলিপি সম্পর্কে কি? এটি কি "সহজেই মানুষের পাঠযোগ্য নয়"? এই ধরণের যুক্তি হতাশাজনক হতাশাব্যঞ্জক, কারণ এর লুকানো বার্তাটি হ'ল: "আমি প্রথম যুক্তি দেখানোর উপায়টি এর মতো দেখায় না” "

3
আপনার 'প্রত্যাবর্তন' এর মতো আরও অনেকগুলি "হুইজ হুইঞ্জ" এর মতো শোনাচ্ছে। প্রোগ্রামিং ভাষার স্নিফ পরীক্ষার চেষ্টা করুন test আগে প্রোগ্রামিং না করে এমন কাউকে নিন এবং তাদের ভিবি কোডের একটি পৃষ্ঠা এবং লিসপ কোডের একটি পৃষ্ঠা দেখান। আমি আনন্দের সাথে আমার বাম বাদামকে বাজি দেব যে দু'জনের মধ্যে নৈমিত্তিক পর্যবেক্ষক এর থেকে সহজেই অর্থবহ পর্যবেক্ষণ আঁকতে সক্ষম হবেন।
নাথানছের

1
আমি ভাবছি যে একজন চীনা, জাপানি, কোরিয়ান, সুমেরীয়, হিন্দি বা আরবি নন-প্রোগ্রামার আপনার স্বাচ্ছন্দ্যের সাথে আপনার অণ্ডকোষকে ছেড়ে দেওয়ার জন্য বরং সাহসী ইচ্ছা সম্পর্কে কী ভাববে।

4

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


কারণ আপনি একজন ভাল প্রোগ্রামার। খারাপ প্রোগ্রামাররা, নতুন জ্ঞানের সাহায্যে পুরানো দক্ষতা প্রভাবিত করার পরিবর্তে নতুন ভাষায় লেখার সময় ইতিমধ্যে পরিচিত ভাষাগুলিতে চিন্তা করে। তবে কেন আপনি লিস্পের পরে জাভা ব্যবহার করছেন? :) জাভা লিস্প, ইমোর পরে ব্যবহার করা সবচেয়ে কঠিন।
লুকা রামিশভিলি

4

আপনার যদি নিজেকে জিজ্ঞাসা করতে হয় আপনার লিস্প শিখতে হবে কিনা, সম্ভবত আপনার প্রয়োজন হবে না।


8
আমি এর বিপরীতে বলব: যদি আপনি ইতিমধ্যে লিস্প বুঝতে পারেন কারণ আপনার অনুরূপ ভাষার সাথে অভিজ্ঞতা আছে তবে সম্ভবত এটি প্রয়োজনীয় নয়। আপনি যদি বুঝতে না পারেন যে লিসপ কী প্রস্তাব দেয়, তবে আপনি এক্সপোজার থেকে উপকৃত হতে পারেন।
মিঃ ফুজ

@ এমআরফুজ-তে কোনও মিল নেই যা লিস্পের লিপি অংশটি শেখার প্রয়োজনীয়তা সরিয়ে ফেলতে পারে। লিস্পের প্রধান বৈশিষ্ট্য কোনও ভাষায় পাওয়া যায় না। যদিও বেশিরভাগ।
লুকা রামিশভিলি

আপনার লক্ষ্য উপর নির্ভর করে। আপনি যদি মরতে চান তবে আপনার দম নেওয়ার দরকার নেই। তবে এর অর্থ এই নয় যে আপনার উচিত নয়।
মিমোরালিয়া

4

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

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


আমি দ্বিতীয় যে. আমি স্কুল থেকে 5 বছর দূরে লিস্পের কাছে আমার দ্বিতীয় প্রচারে রয়েছি। আপনি এখনও সবুজ থাকাকালীন লিস্পের একটি শব্দটির পর্যাপ্ত প্রভাব নাও থাকতে পারে - আমি কেবলমাত্র রূপকগুলিতে মনোনিবেশ করার কথা মনে করি এবং এখনও রূপক ও নমনীয়তার জন্য প্রশংসা করি নি।
অ্যারোন

4

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

ছয়টি নেস্টেড খাঁটি ফাংশনগুলির সৌন্দর্যের পার্থক্য এবং পার্শ্ব প্রতিক্রিয়া সহ ছয়টি নেস্টেড ফাংশনগুলির দুঃস্বপ্ন বুঝতে শেখার জন্য এটি সময় বিনিয়োগের পক্ষে মূল্যবান।


4

Http://www.gigamonkeys.com/book/intr پيداوار- why-lisp.html থেকে

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


4

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

- এরিক এস রেমন্ড, "কিভাবে হ্যাকার হোন"

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


3

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

তবে আপনি যদি এটি শিখতে চলেছেন ... তবে সর্বদা, অন ​​লিসপ পড়ুন


ছোট নোট: লিপ্প অন লিস্পের উপযুক্ত ভূমিকা নয়, প্রথমে অন্য কিছু পড়ুন। আমি প্রাকটিক্যাল কমন লিস্পের প্রস্তাব দিই।
Luís Oliveira

3

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


1
সবচেয়ে গুরুত্বপূর্ণ ভাষা? আমার মনে হয় না স্যার।
ট্রমাপনি

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

1
আমিও একই পথে চলে গেলাম! যদিও আমি ইতিমধ্যে জাভাস্ক্রিপ্টের কার্যকরী এবং প্রোটোটাইপিং বৈশিষ্ট্যগুলি ব্যবহার করছিলাম, তবে লিস্প জাভাস্ক্রিপ্ট শিখার পরেও আমার জন্য এটি একটি নতুন ভাষা ছিল।
লুকা রামিশভিলি


3

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


2

জটিল বাক্য গঠন? লিসপের সৌন্দর্য হ'ল এটির একটি হাস্যকর সহজ বাক্য গঠন রয়েছে। এটি কেবল একটি তালিকা, যেখানে তালিকার প্রতিটি উপাদান হয় অন্য তালিকা বা একটি প্রাথমিক ডেটা ধরণের হতে পারে।

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



2

খুনি অ্যাপ? ফ্র্যাঞ্জ ইনকসাফল্যের গল্পগুলির একটি দীর্ঘ তালিকা রয়েছে , তবে এই তালিকায় কেবল অ্যালেগ্রোসিএল এর ব্যবহারকারীদের অন্তর্ভুক্ত রয়েছে ... সম্ভবত অন্যরাও রয়েছেন। আমার পছন্দেরটি দুষ্টু কুকুরের গল্প , যেহেতু আমি ক্র্যাশ ব্যান্ডিকুট গেমগুলির একটি বড় অনুরাগী ছিলাম।

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


2

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

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


2

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

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


1

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

অটোক্যাডের প্রচুর ফাংশন আসলে এলআইএসপি রুটিন।


1

এটি এমন একটি বিষয় যা আমি নিজেই কিছুক্ষণ চিন্তা করেছি কিন্তু আমি আসলেই সিদ্ধান্ত নিতে আসিনি, যথারীতি সময়ই প্রধান সমস্যা ...;)

এবং যেহেতু আমি এই লিঙ্কগুলিকে এই পোস্টে সোফার খুঁজে পাচ্ছি না আমি জনস্বার্থে তাদের যুক্ত করছি:

সাফল্য এবং ব্যর্থতার গল্প: জেপিএলে লিসপিং

সত্যই চিত্তাকর্ষক সাফল্যের গল্প: অরবিটজ কর্পোরেশনে ব্যবহৃত লিপ্প p

জাভার পরিবর্তে লিস্প ব্যবহার করবেন কিনা তার তুলনা এবং বিশ্লেষণ: জাভার বিকল্প হিসাবে লিস্প


0

সিনট্যাক্স অপ্রাসঙ্গিক, পাঠযোগ্যতা নয়!



0

খুনি অ্যাপ? আইটিএ সফ্টওয়্যার দ্বারা ফ্লাইট সার্চ ইঞ্জিন একটি।

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

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