আমি যখন জাভাস্ক্রিপ্টে পরিস্থিতিটি পূরণ করতে পারি তখন আমি সবসময় মনে করি যদি কোনও foreach
ফাংশন থাকে তবে এটি সুবিধা হবে। ফোরচ দ্বারা আমি নীচে বর্ণিত ফাংশন বলতে চাই:
def foreach(fn,iterable):
for x in iterable:
fn(x)
তারা কেবল এটি প্রতিটি উপাদানগুলিতে করে এবং কিছু দেয় না বা ফেরত দেয় না, আমি মনে করি এটি একটি অন্তর্নির্মিত ফাংশন হওয়া উচিত এবং খাঁটি পাইথন দিয়ে এটি লেখার চেয়ে আরও দ্রুত হওয়া উচিত, তবে আমি এটি তালিকায় খুঁজে পাইনি, বা এটি কেবল অন্য নাম বলা হয়েছে? বা আমি এখানে কিছু পয়েন্ট মিস করছি?
হতে পারে আমি ভুল হয়ে গিয়েছি, পাইথনের কোনও ফাংশন কল করার জন্য দাম বেশি, অবশ্যই উদাহরণের জন্য এটি ভাল অভ্যাস নয়। আউট লুপের পরিবর্তে, ফাংশনটি তার শরীরের নীচের দিকে লুপটি করা উচিত যা ইতিমধ্যে অনেক অজগর কোড পরামর্শে উল্লেখ করেছে:
def fn(*args):
for x in args:
dosomething
তবে আমি ভেবেছিলাম যে ভবিষ্যদ্বাণী এখনও দুটি সত্যের ভিত্তিতে স্বাগত:
- সাধারণ ক্ষেত্রে লোকেরা কেবল পারফরম্যান্সের বিষয়ে চিন্তা করে না
- কিছু সময় এপিআই পুনরাবৃত্তিযোগ্য বস্তু গ্রহণ করে নি এবং আপনি এর উত্সটি পুনরায় লিখতে পারবেন না।
for
জন্য হয়।
list.each(func)
চেয়ে পরিষ্কার for item in list: func(item)
। সমস্যাটি হ'ল পাইথন ফাংশনাল ফেভারিটগুলিকে পছন্দ করার মতো map()
এবং filter()
তালিকা বোঝার সাথে প্রতিস্থাপনের জন্য ভাল কাজ করেছে যা কেবল তার অন্তর্নির্মিত for
এবং if
(যা সমজাতীয় এবং পঠনযোগ্য) প্রসারিত করে এবং একটি নির্দিষ্ট এর .each()
বিরুদ্ধে যেতে পারে।
sum(0 for _ in map(f, seq))
একটি পঠনযোগ্য workaround।
for
লুপ ব্যবহার করে কী হয়েছে ?