আমি মজাদার জন্য একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ মডেলিং করছি, এবং সিনট্যাক্সটি স্কালার দ্বারা অত্যন্ত প্রভাবিত - বিশেষত ফাংশন সংজ্ঞা।
আমি একটি ডিজাইনের সমস্যার মুখোমুখি হয়েছি কারণ আমার ভাষা সিনট্যাক্সের মাধ্যমে সংজ্ঞায়িত ফাংশন (শ্রেণি পদ্ধতি) এবং মানগুলিতে নির্ধারিত বেনামী ফাংশনগুলির মধ্যে পার্থক্য রাখে নাdef ( =>এটি ব্যবহার করে তৈরি করা হয়েছে ) - এটি বাস্তবায়ন এবং আচরণ উভয়ের পার্থক্যকে সরিয়ে দেয় ।
ফলাফলটি হ'ল নিম্নলিখিত দুটি সংজ্ঞা একই জিনিস বোঝায়:
def square(x: Int) = x*x
val square = (x: Int) => x*x
সেখানে আধুনিক ফর্ম জন্য কোনো কারণ (তাৎক্ষণিক বেনামী ফাংশন নিয়োগ) কোন স্বাভাবিক অবস্থায় ব্যবহার করা - এটা কেবল এর সম্ভাব্য পরিবর্তে এটি ব্যবহার করতে defফর্ম।
নামযুক্ত ফাংশন সংজ্ঞায়িত করার জন্য এ জাতীয় সদৃশ সিনট্যাক্স থাকলে ভাষার অরথোগোনালটি বা অন্য কোনও ডিজাইনের দিকটিকে আঘাত করবে?
আমি এই সমাধানটি পছন্দ করি কারণ এটি পদ্ধতির সংক্ষিপ্ত এবং স্বজ্ঞাত সংজ্ঞা এবং নামযুক্ত ফাংশনগুলির (মাধ্যমে def) এবং বেনাম ফাংশনগুলির সংক্ষিপ্ত সংজ্ঞা (ব্যবহার করে =>) অনুমতি দেয়।
সম্পাদনা: Scala করে দুটোর মধ্যে পার্থক্য আছে - anonymous ফাংশন সংজ্ঞায়িত পদ্ধতি মত নয় defScala হবে। পার্থক্য যদিও তুলনামূলকভাবে সূক্ষ্ম - আমি পোস্ট লিঙ্ক আগে দেখুন।
valস্বরলিপি ব্যবহার করে পুনরাবৃত্ত ফাংশন সংজ্ঞায়িত করতে পারেন ?
funপুনরাবৃত্ত ফাংশন সংজ্ঞায়িত করতে ব্যবহার করতে হবে।
def। এটি কেবলমাত্র একটি পার্শ্ব প্রতিক্রিয়া যা একটি বেনাম ফাংশন, বলে (x : Int) => x + 1একটি বস্তু, এবং অবজেক্টগুলি মান সহ নির্ধারিত হতে পারে val f = ...। ভাষা ডিজাইনারদের সিনট্যাক্সটি অস্বীকার করার জন্য তাদের উপায়ের বাইরে চলে যেতে হত । এটি সম্পূর্ণরূপে একই নয় যে দুটি ভিন্ন বাক্য গঠন যা (প্রায়) একই জিনিসটিকে সমর্থন করার জন্য স্পষ্টভাবে প্রচেষ্টা চালিয়ে যায়।
However, assigning existing functionsমনে হচ্ছে বাক্যটির শেষ নেই