লিস্প -১ এবং লিস্প -২ এর মধ্যে পার্থক্য কী?


96

আমি লিস্প -১ এবং লিস্প -২ এর মধ্যে পার্থক্যটি বোঝার চেষ্টা করেছি এবং এটি কীভাবে ক্লোজারের সাথে সম্পর্কিত তবে আমি এখনও সঠিকভাবে বুঝতে পারি না। কেউ কি আমাকে আলোকিত করতে পারেন?

উত্তর:


69

উইকিপিডিয়া অনুসারে :

ফাংশনগুলির জন্য পৃথক নেমস্পেস কোনও সুবিধা হ'ল লিস্প সম্প্রদায়ের মধ্যে বিতর্কের উত্স। এটি সাধারণত লিস্প -১ বনাম লিস্প -২ বিতর্ক হিসাবে পরিচিত। লিস্প -১ স্কিমের মডেলকে বোঝায় এবং লিস্প -২ কমন লিস্পের মডেলকে বোঝায়।

এটি মূলত ভেরিয়েবল এবং ফাংশনগুলির সংঘাত ছাড়াই একই নাম থাকতে পারে কিনা সে সম্পর্কে। ক্লোজুর হ'ল একটি লিস্প -1 অর্থ এটি একই নামটি কোনও ক্রিয়াকলাপের জন্য এবং একই সাথে ভেরিয়েবলের জন্য ব্যবহার করার অনুমতি দেয় না।


11
লিস্প -২ এর কি একই নামগুলির সাথে ফাংশন এবং ভেরিয়েবলগুলি থাকা আরও বিভ্রান্তিকর নয়?
appshare.co

39
লিস্প -২ উপভাষাগুলি ব্যবহারকারী প্রোগ্রামাররা একই নামযুক্ত ফাংশন এবং ভেরিয়েবলগুলি রাখার উপায় থেকে বেরিয়ে আসার কারণটির একটি অংশ। listপ্রায়শই একটি ফাংশন প্যারামিটার এবং কোনও জিনিস হিসাবে ব্যবহৃত হয় না, ওএমজি যেহেতু এতটা বিভ্রান্তিকর কারণ (list ...)এটি একটি স্ট্যান্ডার্ড ফাংশন। listভেরিয়েবল হিসাবে থাকা অনেকগুলি ক্রিয়াকলাপটি ব্যবহার করে listনা বা ভেরিয়েবলের কাছে এটি ব্যবহার করে না। এমনকি যখন যে ঘটবে এটা খুব খারাপ না: (list foo list)। এটি "ভাল লড়াইয়ের লড়াই করুন" এর মতো বাক্যটির চেয়ে আর বিভ্রান্তিকর নয় যেখানে একই শব্দটি বিশেষ্য এবং ক্রিয়া হিসাবে প্রদর্শিত হয়।
কাজ

5
@ জুবায়ের জাভাতে আরও আরও অনেক বেশি জায়গা রয়েছে। আপনি কোনও শ্রেণি, একটি পদ্ধতি এবং একই নামের সাথে একটি ভেরিয়েবল সংজ্ঞায়িত করতে পারেন।
14

20
স্মৃতিবিজড়িত হিসাবে, আমি লিসপ 1 এর 1 টি নেমস্পেস এবং লিস্প 2 এর 2 টি নেমস্পেস (ফাংশনের জন্য একটি এবং ভেরিয়েবলের জন্য একটি) থাকার কথা ভাবি।
নিক ম্যাককার্দি

4
@ নিক ম্যাকক্রিডি স্মৃতিবিজড়িত হিসাবে আমি সাইকেলটিকে দুটি চাকা এবং ট্রাইসাইকেলের তিনটি বলে মনে করি।
কাজ

73

আপনি রিচার্ড গ্যাব্রিয়েলের এই কাগজটি পড়তে পছন্দ করতে পারেন । এটি লিস্প সম্প্রদায় লিস্প 1 বনাম লিস্প 2 তে যে বিষয়গুলি নিয়ে আলোচনা করছিল তা সংক্ষিপ্তসার। এটি প্রথম কয়েকটি বিভাগে কিছুটা ঘন এবং ধীর গতিতে চলতে পারে তবে আপনি অধ্যায় 5 এর অতীতে পৌঁছানোর পরে এটি পড়া খুব সহজ।

মূলত, লিসপ 1 এর একটি একক পরিবেশ রয়েছে যা মানগুলির প্রতীকগুলিকে মানচিত্র করে এবং সেগুলি মানগুলি "নিয়মিত" বা ফাংশন হতে পারে। লিসপ 2-তে দুটি (অন্তত) দুটি নেমস্পেস রয়েছে (প্রতীকগুলির একটি ক্রিয়াকলাপের জন্য একটি স্লট এবং নিয়মিত মানের জন্য একটি রয়েছে)। সুতরাং, লিসপ ২-এ, আপনি ফু নামে একটি ফাংশন এবং ফু নামে একটি মান রাখতে পারেন, তবে লিসপ 1 এ, foo নামটি কেবলমাত্র একটি মান (ফাংশন বা অন্যথায়) বোঝাতে পারে।

দুজনের মধ্যে বেশ কয়েকটি ট্রেড অফ এবং স্বাদের পার্থক্য রয়েছে তবে বিশদটির জন্য কাগজটি পড়ুন। ক্রিশ্চান কুইনেকের বই "লিপ্প ইন স্মল পিসস" তেও পাঠ্যের মাধ্যমে বোনা পার্থক্য নিয়ে আলোচনা রয়েছে।


7
গ্যাব্রিয়েল কাগজের আরও মায়াবী অংশগুলির মধ্যে একটি, মাল্টিপ্রসেসিংয়ের 11 অনুচ্ছেদ। এই বিভাগে, তিনি সূচিত করেছেন যে লিস্প 1 প্রোগ্রামিংয়ের কার্যকরী শৈলীর পক্ষে আরও উপযুক্ত, সুতরাং বহুগুণ প্রয়োগের পক্ষে আরও সুবিধাজনক duc স্পষ্টতই, এটি আগ্রহী ক্লোজারের। তবে আমি সত্যিই নিশ্চিত নই যে লিস্প 1 এফপির পক্ষে আরও সুবিধাজনক কেন । কারও মধ্যে এর অন্তর্দৃষ্টি আছে?
পিটার ম্যাকলাইন

41
সম্ভবত এফপির প্রধান পয়েন্টটি হ'ল ফাংশনগুলিকে প্রথম শ্রেণির মান হিসাবে বিবেচনা করা, তাই
এগুলি

10
@ পিটারম্যাকলাইন যখন লিস্প -১ উপভাষার ব্যবহারকারীরা বলছেন যে লিস্প -১ কার্যকরী প্রোগ্রামিংয়ের পক্ষে আরও পরিবাহী, তখন তাদের অর্থ হ'ল আপনাকে funcallএবং functionঅপারেটরের পূর্ণ কোডটি ভরাট করতে হবে না । এগুলি লিস্প -১ এ অদৃশ্য হয়ে যায়।
কাজ

4
উদাহরণস্বরূপ, যখন কোনও স্কিমার লিস্প লেখার চেষ্টা করে তখন কী ঘটে: emacs.stackexchange.com/q/28979/2787
সিভিং

4
আপনি লিস্প -2 সম্পর্কে "কমপক্ষে" শব্দটি ব্যবহার করেছেন। ২ টি মামলার মধ্যে সাধারণ পার্থক্য: হ'ল প্রতীকটি কোনও এস-এক্সপ্রেশনের প্রধান অবস্থানে রয়েছে কিনা, (যদি তা না হয় তবে ফাংশন নেমস্পেসে অন্যথায় পরিবর্তনশীল নেমস্পেসে অনুসন্ধান করা হবে)। আপনি কি 2 টি ক্ষেত্রে বাদে অন্য কয়েকটি উদাহরণ দিতে পারেন?
ড্যানিয়েল ডিনিজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.