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