এলিএসপিতে "লেট *" (তারকাচিহ্ন) এর অর্থ কী?


উত্তর:


19

এর মানে যখন এক, ভেরিয়েবল ক্রমানুসারে আবদ্ধ হয় বাঁধাই বেশি, তাই প্রতিটি মান ঐ যে এটা আগে আবদ্ধ হয়, অর্থাত, ঐ যে এটা আগে অবশ্যই আসার চেষ্টা আবদ্ধ উপর নির্ভর করতে পারেন let*বাইন্ডিং।

জন্য let(কোন তারকাচিহ্ন), বাইন্ডিং কেউই (ভেরিয়েবল, নীতিগতভাবে, সমান্তরাল আবদ্ধ হতে পারে) অন্যদের কোন সামনে ঘটতে অধিকৃত করা যেতে পারে।

সুতরাং (let ((a 42) (b a))...b)একটি ত্রুটি বাড়াতে পারে কারণ এটি bমানটির সাথে আবদ্ধ হওয়ার চেষ্টা করে aএবং a(কমপক্ষে নির্দিষ্টভাবে aএটি আবদ্ধ হয় let) কোনও মানকে আবদ্ধ বলে ধরে নেওয়া যায় না।

[কিছু অন্যান্য (যেমন গ্লোবাল) পরিবর্তনশীল যদি a একটি মান আবদ্ধ হয়, যেমন, 5, তাহলে সেই letঅভিব্যক্তি বাঁধে তার (স্থানীয়) হবে aথেকে 42এবং বাঁধুন bবিশ্বব্যাপী মূল্য a, অর্থাত্, 5।]

কিন্তু (let* ((a 42) (b a))...b)ফেরত দেয় 42কারণ aআবদ্ধ হয়ে যায় 42 এবং তারপরে b মানটির সাথে আবদ্ধ হয় a

এলিসপ ম্যানুয়ালটি দেখুন, স্থানীয় ভেরিয়েবলগুলি নোড করুন ।


@ DoMiNeLa10 এর একটি মন্তব্যে অনুস্মারক থেকে আপডেট করুন:

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

এবং C-h f let*সংক্ষেপে আমাদের বলছে:Each VALUEFORM can refer to the symbols already bound by this VARLIST.


যদিও এখানে জিজ্ঞাসা করে কোন ভুল নেই, আপনি যদি ইমাসকে এ জাতীয় প্রশ্ন জিজ্ঞাসা করেন তবে আপনি নিজের পক্ষে উপকার করবেন । শুধু ব্যবহার বেছে ম্যানুয়াল এর তথ্য ব্রাউজার খুলতে ম্যানুয়াল, এবং ব্যবহার সন্ধান করার (সমাপ্তির সঙ্গে) সূচক। এটি আপনাকে সরাসরি নোডে নিয়ে যায় যা এটি কভার করে।C-h iElispi let*let*

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


আপনি এই সাইটটি প্রশ্ন এবং উত্তরগুলির জন্য অনুসন্ধান করতে পারেন যা ট্যাগ ব্যবহার করে let-binding: [let-binding]সন্ধানের ক্ষেত্রে সবেমাত্র রেখে দেওয়া। (আমি এখনই এটি করব, দেখতে এই প্রশ্নটি সম্ভবত নকল কিনা ...)


সেখানে উপরোক্ত উদাহরণের একটি টাইপো যখন হয়, b5 সমান করা হয়েছে কারণ এটি বিশ্বব্যাপী আবদ্ধ হয় a। এটা তোলে পড়া উচিত letপরিবর্তেlet*
Jue

@ জিউ: ডান; ধন্যবাদ.
ড্রিউ

এটির সাথে ফাংশন সম্পর্কে জিজ্ঞাসা করাও সম্ভব F1 f
DoMiNeLa10

@ ডোমনিএলএ 10: প্রকৃতপক্ষে; ভাল যুক্তি. মন্তব্যগুলি যে কোনও সময় মুছে ফেলা যায় বলে আমি এই উল্লেখ করার জন্য উত্তর আপডেট করেছি। ধন্যবাদ.
ড্র

5

let*পুনরাবৃত্ত letঅর্থের মতো:

(let* ((var1 VAL1)
       (var2 VAL2))
  ...)

মত

(let ((var1 VAL1))
  (let ((var2 VAL2))
    ...))

এর মাধ্যমে মূলধন বর্ণগুলির ব্যবহার VAL1এবং VAL2ইঙ্গিত করে যে সেগুলিও প্রকাশ হতে পারে।

পুনরাবৃত্ত- letবাঁধাইয়ের VAL2উপর নির্ভর করে যদি এর উপর নির্ভর করে তবে এর পরিণতি রয়েছে var1। এর প্রভাবটি ইতিমধ্যে ড্রয়ের উত্তরে বর্ণিত হয়েছে ।

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