লিস্পের কি এখনও কোনও বিশেষ বৈশিষ্ট্য রয়েছে যা অন্যান্য প্রোগ্রামিং ভাষার দ্বারা গৃহীত হয়নি?


35

লিস্পের কি এখনও কোনও বিশেষ বৈশিষ্ট্য রয়েছে যা অন্যান্য প্রোগ্রামিং ভাষার দ্বারা গৃহীত হয়নি?

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

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

আমি কি কিছু মিস করেছি এবং "লিস্প এখনও আলাদা"?

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


3
আপনার গবেষণা ভাগ করে নেওয়া প্রত্যেককে সহায়তা করে। আপনি কী চেষ্টা করেছেন এবং কেন এটি আপনার প্রয়োজনীয়তা মেটেনি তা আমাদের বলুন। এটি প্রমাণ করে যে আপনি নিজেকে সাহায্য করার চেষ্টা করার জন্য সময় নিয়েছেন, এটি আমাদের সুস্পষ্ট উত্তরের পুনরাবৃত্তি থেকে বাঁচায় এবং সর্বোপরি এটি আপনাকে আরও নির্দিষ্ট এবং প্রাসঙ্গিক উত্তর পেতে সহায়তা করে get এছাড়াও কীভাবে জিজ্ঞাসা করবেন দেখুন
gnat

3
পরামর্শের জন্য @ থ্যাঙ্কস জাগান, এবং আমি আমার প্রশ্ন আপডেট করেছি :)
আইসএক্স

10
একটি সমস্যা হ'ল একবার কোনও ভাষাতে লিস্প বৈশিষ্ট্যগুলির একটি নির্দিষ্ট উপসেট থাকে (উদাহরণস্বরূপ, এস-এক্সপ্রেশন এবং ম্যাক্রোস), লোকেরা দাবি করে যে এটি একটি লিস্প। কোনটির অবশ্যই পরিণতি হয়েছে যে (এই লোকগুলির মতে) কোনও অ-লিস্প ভাষায় এই বৈশিষ্ট্যগুলি থাকতে পারে না।

9
আমার ধারণা অন্য কোনও ভাষা নেই যেখানে রাউন্ড বন্ধনীগুলি প্রতিটি কিছুর জন্য গ্রুপিংয়ের একমাত্র রূপ :-)
ডক ব্রাউন

পরিবার হিসাবে লিস্প মারাত্মকভাবে অনন্য নয়, তবে প্রচুর লিস্প উপভাষা (র‌্যাকেট, সিএল, স্কিম, ক্লোজার) এখনও প্রচুর দরকারী / অনন্য বৈশিষ্ট্য সরবরাহ করে।
ড্যানিয়েল গ্রেটজার

উত্তর:


28

এই ধরণের প্রশ্নের জন্য একটি প্রৌ .় রেফারেন্স হ'ল পল গ্রাহামের হোয়াট মেড মেড লিস্প আলাদা । লেখার সময় এই নিবন্ধ অনুসারে লিস্পের অবশিষ্ট দুটি মূল বৈশিষ্ট্য যা ব্যাপকভাবে উপলভ্য নয় are

8. চিহ্নগুলির গাছ ব্যবহার করে কোডের জন্য একটি স্বরলিপি

9. পুরো ভাষা সর্বদা উপলব্ধ। পঠন-সময়, সংকলন-সময় এবং রানটাইমের মধ্যে কোনও বাস্তব পার্থক্য নেই। আপনি সংকলন করতে বা কোড রান করতে, সংকলনের সময় কোডটি পড়তে বা চালাতে এবং রানটাইম সময়ে কোডটি পড়তে বা সংকলন করতে পারবেন।

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

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

দ্রষ্টব্য যে এই নিবন্ধটি সর্বশেষে ২০০২ সালে সংশোধিত হয়েছিল এবং বিগত ১১ বছরে বিভিন্ন ধরণের নতুন ভাষা এসেছে, যার মধ্যে কিছুগুলি এই সমস্ত লিপ বৈশিষ্ট্যগুলিকে তাদের নকশায় অন্তর্ভুক্ত করতে পারে।


2
এই বৈশিষ্ট্যগুলি লিস্প (এবং সরাসরি উত্পন্ন রূপগুলি) এর কাছে অনন্য নয় এবং বেশিক্ষণ এটির জন্য হয়নি।
ডোনাল ফেলো

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

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

4
@ আইএক্সএক্স: অনেকগুলি ভাষা evalএকই বা অনুরূপ, এবং বেশ কয়েকটি কয়েকটি রূপকল্পায়ন করতে পারে, যেমন হাস্কেলের টেম্পলেট হাস্কেল। লিস্প সম্পর্কে (তর্কযোগ্যভাবে) অনন্য জিনিসটি হ'ল ডেটা, কোড এবং মেটা-কোডের জন্য উপস্থাপনাটি একমাত্র - কেবল সিনট্যাক্সে নয়, তবে এটি সত্যই একই জিনিস।
tdammers

2
@ আইসএক্স এভাল এটির একটি মাত্র অংশ, তবে এটি সমস্ত কিছুই নয়। লিস্পে আপনি সংকলন সময়ে কোড চালাতে পারেন। আপনি পড়ার সময় কোড চালাবেন। হ্যাঁ ক্লোজওর লিস্পের সমস্ত গতিশীলতা সমর্থন করে, এতে ম্যাক্রোস, রিডার ম্যাক্রোস এবং ইভাল রয়েছে, পাশাপাশি ফ্লাইতে এটিকে পরিবর্তন করার জন্য একটি চলমান প্রোগ্রামের সাথে একটি আরপিএল সংযুক্ত করার ক্ষমতা রয়েছে।
স্টোনমেটাল

15

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

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

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

এটি ভাবুন, যদিও, সরাসরি ফর্মগুলি তৈরি করা লিস্পে কেবল এক ধরণের ম্যাক্রো উপলভ্য: আমি অন্য কোথাও সংকলক বা পাঠক ম্যাক্রোর সমতুল্য দেখিনি।

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

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

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


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

4

এত দশক পরে, আমি মনে করি না যে লিস্পের সাথে একচেটিয়া কিছু রয়েছে। তবে আজও অনেকগুলি আকর্ষণীয় বিষয় রয়েছে যা লিস্পসের বাইরে খুঁজে পাওয়া শক্ত। কিছু জিনিস যা মনে আসে:

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

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


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

তাদের গুরুত্বপূর্ণ পার্থক্য রয়েছে। আপনি যদি এটির সংস্থান খুঁজে পেতে সমস্যায় পড়ে থাকেন তবে আপনি সর্বদা এখানে একটি নতুন প্রশ্ন তৈরি করতে পারেন ..
থিয়াগো সিলভা

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

4

এটি অগত্যা একটি নির্দিষ্ট একক বৈশিষ্ট্য নয় । এটি সম্পূর্ণ চেহারা এবং অনুভূতি এবং বৈশিষ্ট্যগুলির নির্দিষ্ট সেটগুলি একসাথে কীভাবে কাজ করে তা

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

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

এখন জাভাস্ক্রিপ্ট এর মতো কিছু ব্যবহার করা হয় একটি প্রোগ্রাম, সাধারণত একটি ওয়েব ব্রাউজার প্রসারিত করার জন্য। তবে বেশিরভাগ সময় জাভাস্ক্রিপ্টে মেটা-প্রোগ্রামিং বেশি হয় না - কিছু ওওপি হ্যাকারি ছাড়াও ।

উদাহরণ:

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

(পাইথনে আরও এক বা একাধিক লেখা রয়েছে।)

এমন অনেকগুলি সিস্টেম নেই যা অ্যাক্সিয়ামের মতো কোনও কিছুর বৈশিষ্ট্যযুক্ত সেট সরবরাহ করে , যা কমন লিস্পের শীর্ষে চলে।

এই ধরণের অ্যাপ্লিকেশনগুলির জন্য লিস্পকে আকর্ষণীয় করে তুলেছে এমন বৈশিষ্ট্যগুলির সংমিশ্রণ: উন্নত মৌলিক গণিত (বিগনুমস, অনুপাত, ...), প্রতীকী গণনা, ইন্টারেক্টিভ সংকলক ইত্যাদি। এগুলি কম-উচ্চতায় প্রয়োগ করে এই জিনিসগুলি পাওয়া সম্ভব quite স্তর ভাষা। এইভাবে, কেউ একটি সাধারণ লিস্প সিস্টেমের 50% বা তার বেশি প্রয়োগ করে।


2

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

: (   41 word drop ; immediate
( That was the definition for the comment word. )
( Now we can add comments to what we are doing! )

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

2
কৌতূহলের বাইরে আপনি 'ভাষার মূল অংশ থেকে আলাদা' বলতে কী বোঝায়? লিস্পে ম্যাক্রোগুলির ম্যাক্রো সংজ্ঞায়িত বিন্দুতে সংজ্ঞায়িত সমস্ত ফাংশনগুলিতে সম্পূর্ণ অ্যাক্সেস রয়েছে, যার যে কোনওটি ম্যাক্রো প্রসারিত হওয়া ফর্মটি তৈরি করতে ব্যবহার করা যেতে পারে। এটিতে ডাটাবেস এবং / অথবা সার্ভার থেকে প্রাপ্ত তথ্য জড়িত থাকতে পারে। আপনার মন্তব্য উদাহরণ, হিসাবে সংজ্ঞায়িত করা যেতে পারে: (Defmacro মন্তব্য (& বিশ্রাম শরীর)), তাই না?
ড্যানি উডস

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

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

1
ন্যায়সঙ্গত হওয়ার জন্য, কাস্টম রিডার ম্যাক্রো নিবন্ধভুক্ত করে লিস্পেও একই কাজটি করা যেতে পারে।
ফিজারী

2

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

স্প্যাগেটি স্ট্যাক বন্ধের মতো তবে স্টেরয়েডগুলিতে। এটি কেবলমাত্র বর্তমান ফাংশনটিই নয়, পুরো প্রসঙ্গটি স্ট্যাকের শীর্ষ পর্যন্ত সংরক্ষণ করে। কো-রুটিনের মতো কিছু , আপনি এগুলি নির্বিচারে তৈরি করতে পারতেন, ফলস্বরূপ স্ট্যাকের প্রসঙ্গগুলির ক্রমবর্ধমান।


এটি জানতেন না, এটি উত্তরে
যাবেন,

7
এটি কি প্রকল্পের ধারাবাহিকতার মতো?
নিকোলা মুসাত্তি

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