কিছু ফাংশনাল প্রোগ্রামিং ল্যাঙ্গুয়েজ কেন ফাংশন অ্যাপ্লিকেশনের জন্য একটি স্থান ব্যবহার করে?


34

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

সুতরাং আমাদের যদি ফ (এক্স) = x² ফাংশন থাকে তবে এটিকে কল করার দুটি বিকল্প রয়েছে:

  • FP: f x

    উদাহরণ:

    • এমএল, ওকামল, এফ #
    • Haskell,
    • এলআইএসপি, স্কিম (কোনওভাবে)
  • অ FP: f(x)

    উদাহরণ:

    • প্রায় সমস্ত অপরিহার্য ভাষা (আমি জানি, মন্তব্যগুলি / উত্তর দেখুন)
    • Erlang
    • স্কালা (একক যুক্তির জন্য "অপারেটর স্বরলিপি "ও মঞ্জুরি দেয়)

প্রথম বন্ধনীর বাইরে চলে যাওয়ার কারণ কী?


9
এটি আরো বিভ্রান্তিকর, ERM করতে, আমি বোঝানো সংক্ষিপ্ত
ডেন

11
@ আপনি যদি হাস্কেল শিখেন তবে বাক্য গঠনটি হ'ল নিতান্তই বিভ্রান্তিকর জিনিসগুলির মধ্যে একটি: পি
সাইমন বার্গোট

5
আপনি যে বন্ধনী ব্যবহার করা আরও গাণিতিক এবং তারপর উদাহরণ হিসাবে ক্ষতিকারক ফাংশন ব্যবহার করার বিড়বিড়তা বুঝতে পারি ?
জার্গ ডব্লু মিট্টাগ

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

7
আমি উল্লেখ করতে চাই যে শেল স্ক্রিপ্টগুলি (যেমন বাশ) কমান্ড কল করতে সাধারণত প্যারামিটার ব্যবহার করে না। পাওয়ারশেল ধরণের উভয় পৃথিবীর মধ্যে সবচেয়ে খারাপ রয়েছে যে ক্রিয়াকলাপগুলি প্রথম বন্ধনী দিয়ে ঘোষণা করা হয় এবং সেগুলি ছাড়াই ডাকা হয়।
ক্রিস হার্পার

উত্তর:


59

এটি আরও গাণিতিক উপায়ে বলে মনে হচ্ছে

ক্রিয়ামূলক ভাষা ল্যাম্বদা ক্যালকুলাস দ্বারা অনুপ্রাণিত হয় । এই ক্ষেত্রে, বন্ধনীগুলি ফাংশন অ্যাপ্লিকেশনের জন্য ব্যবহৃত হয় না।

আমি আরও মনে করি যে পরের শৈলীটি প্যারেন্স ছাড়াই অনেক বেশি স্পষ্ট এবং পঠনযোগ্য।

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

এই কনভেনশনটি ব্যবহার করার জন্য কারি করাও একটি ভাল কারণ। হাসকেলে আপনি নিম্নলিখিতটি সংজ্ঞায়িত করতে পারেন:

add :: Int -> Int -> Int
add x y = x + y

x = add 5 6 -- x == 11
f = add 5
y = f 6 -- y == 11
z = ((add 5) 6) -- explicit parentheses; z == 11

পেরেনগুলির সাথে, আপনি দুটি কনভেনশন ব্যবহার করতে পারেন: f(5, 6)(ত্রিযুক্ত নয়) বা f(5)(6)(ত্রিযুক্ত)। হ্যাশেল সিনট্যাক্স কারীকরণ ধারণার অভ্যস্ত হতে সহায়তা করে। আপনি এখনও একটি অ-ত্রিযুক্ত সংস্করণ ব্যবহার করতে পারেন তবে এটি সংযুক্তকারীগুলির সাথে ব্যবহার করা আরও বেদনাদায়ক

add' :: (Int, Int) -> Int
add' (x, y) = x + y
u = add'(5, 6) -- just like other languages
l = [1, 2, 3]
l1 = map (add 5) l -- [6, 7, 8]
l2 = map (\x -> add'(5, x)) l -- like other languages

লক্ষ্য করুন দ্বিতীয় সংস্করণটি আপনাকে x কে কীভাবে ভেরিয়েবল হিসাবে নিবন্ধিত করতে বাধ্য করে এবং subexpression এমন একটি ফাংশন যা একটি পূর্ণসংখ্যা নেয় এবং এতে 5 যোগ করে? তরকারিযুক্ত সংস্করণটি অনেক হালকা, তবে এটি আরও পাঠযোগ্য হিসাবে বিবেচিত।

হাস্কেল প্রোগ্রামগুলি বিমূর্ততা সংজ্ঞায়িত এবং রচনার মাধ্যম হিসাবে আংশিক প্রয়োগ এবং সংযোজকগুলির ব্যাপক ব্যবহার করে, সুতরাং এটি খেলনার উদাহরণ নয়। একটি ভাল ফাংশন ইন্টারফেস এমন এক হবে যেখানে প্যারামিটারের ক্রমটি একটি বন্ধুত্বপূর্ণ তরল ব্যবহার করে।

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

ফাংশন আবেদনের জন্য অন্যান্য কনভেনশন রয়েছে:

  • লিস্প: (এফএক্স) - বাহ্যিক বন্ধনীগুলির সাথে উপসর্গ
  • চতুর্থ: এক্সএফ - পোস্টফিক্স

7
গৌণ নিটপিক: পদগুলি হ'ল "তরকারী" এবং "ত্রিযুক্ত", "ক্রিফিকেশন" এবং "কার্ফাইফাইড" নয়।
ডোভাল

"নন ক্রিডিড" হ্যাশেলের একটি নন-ক্রিড ফাংশন কী?
ভেন

3
@ user1737909 একটি ফাংশন যা একটি আর্গুমেন্ট হিসাবে tuple লাগে।
ডোভাল

1
@ দোভাল আসলে এটি "স্ক্যানফিন্কেলিং" এবং "স্ক্যানফিনকেলেড" হওয়া উচিত। তবে ওহ ভাল, ইতিহাস সর্বদা বিজয়ীকে পূর্ববর্তী স্থানে সংজ্ঞায়িত করে।
অধ্যাপক

একটি প্রথম বন্ধনীযুক্ত কারিরিং সিনট্যাক্স সম্পর্কে চিন্তাভাবনা করা, ডিফল্টরূপে বা এর মতো কিছু f(a, ,b)বা আরও নমনীয় বলে মনে হচ্ছে। add(a, )add(, b)
ফ্রেস্নেল

25

মূল ধারণাটি হ'ল সর্বাধিক গুরুত্বপূর্ণ ক্রিয়াকলাপ (ফাংশন অ্যাপ্লিকেশন) পড়া সহজতর এবং সহজে লেখা সহজ। একটি স্পেস খুব পড়ার জন্য নিখরচায় এবং টাইপ করা খুব সহজ।

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

স্মলটক-শৈলী:

anArray sort
anArray add: 2
aString replace: "a" with: "b"

(পরবর্তী ক্ষেত্রে, পদ্ধতির নাম replace:with:।)

IO-শৈলী:

anArray sort
anArray add(2)
aString replace("a", "b")

স্কালা পদ্ধতি কলগুলির জন্য হোয়াইটস্পেসের অনুমতি দেয়:

foo bar(baz)

এবং কেবলমাত্র একটি যুক্তি থাকলে বন্ধনী বন্ধ করে দেওয়া:

foo bar baz

রুবি আপনাকে প্রথম বন্ধনী বন্ধ করার অনুমতি দেয়:

an_array.sort
an_array.add 2
a_string.replace "a", "b"

বন্ধনী ব্যবহার করে যা আরও গাণিতিক উপায়ে বলে মনে হচ্ছে

আসলে তা না:

f(x)
sin x
x²
|x|
x!
x + y
xy
½

গণিত স্বরলিপিটি দীর্ঘকাল ধরে মারাত্মকভাবে বেমানান পথে বিকশিত হয়েছে।

যদি মোটেও, কার্যকরী ভাষাগুলি অনুপ্রেরণা λ-ক্যালকুলাস থেকে নেয় যেখানে ফাংশন অ্যাপ্লিকেশনটি সাদা স্থান ব্যবহার করে লেখা হয়।


3
সম্পাদনার অর্থনীতিতেও একটি যুক্তি রয়েছে। বিশেষত, কার্যকরী ভাষা সাধারণত রচনা সরাসরি সমর্থন করে। আর্গুমেন্টের পরিবর্তে ফাংশনটির চারপাশে প্রথম বন্ধন রাখার অর্থ হয়। আপনাকে কেবল এটি "একবার" করতে হবে: (e। F। G) x ই এর বিপরীতে (চ (জি (এক্স)))। এছাড়াও, হাস্কেল, কমপক্ষে, এফ x এর পরিবর্তে একটি (এক্স) করা থেকে বিরত থাকবে না। এটি শুধু মূর্খতা নয়।
নাম

18

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

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


7
এমনকি আমাকে বাধ্য শুরু না f(x)বনাম sin xবনাম বনাম |x|বনাম x!বনাম x + yবনাম xyবনাম ½বনাম একটি সঙ্কলন বনাম অবিচ্ছেদ্য বনাম ...
Jörg ডব্লিউ Mittag

2
ভন নিউমানের উদ্ধৃতিটির জন্য +1। বাকি উত্তরের জন্য +1, তবে আমি +2 দিতে পারি না। :(
pvorb

2
আমি এখানে অভিজাতদের ইঙ্গিত ধরছি; "ফাংশনাল প্রোগ্রামিং ভাষার ডিজাইনাররা আরও ভাল শিক্ষিত" এর নিরপেক্ষতার বিষয়ে আমি বিতর্ক করি ।
ক্যাপ্টেন কোডম্যান

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

5
@ ক্যাপ্টেনকোডম্যান না, যেহেতু তিনি কখনই বোঝাননি যে তারা সাধারণভাবে বেশি শিক্ষিত, গণিতে আরও শিক্ষিত। তিনি এটাই বলেছেন: "বিস্তৃত গাণিতিক শিক্ষা"। :)
পল

8

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

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

এমনকি স্কালা প্রোগ্রামারকে কিছু পরিস্থিতিতে বন্ধনী বাদ দেওয়ার অনুমতি দেয়, যা কার্যকরী শৈলীতে প্রোগ্রামিং করার সময় প্রায়শই ঘনিয়ে আসে, সুতরাং আপনি উভয় দুনিয়ার সেরা পেতে পারেন। উদাহরণ স্বরূপ:

val message = line split "," map (_.toByte)

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


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

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

"স্টুপিড প্যারেন্টেসিস লস্ট ইন" আমার প্রিয় এলআইএসপি ব্যাক্রোনিয়াম। উইসপ-এর মতো ভাষাগুলিতে কম্পিউটারগুলি ব্লকগুলি নির্দিষ্ট করতে এবং অতিরিক্ত কাজটি বাদ দেওয়ার জন্য মানবিক পদ্ধতি ব্যবহার করতে পারে ।
সিইস টিমর্ম্যান

4

উভয় প্রাঙ্গণই ভুল।

  • এই কার্যকরী ভাষাগুলি ফাংশন অ্যাপ্লিকেশনের জন্য স্থান ব্যবহার করে না । তারা যা করে তা কেবল যুক্তি হিসাবে কোনও ক্রিয়াকলাপের পরে আসা কোনও অভিব্যক্তি পার্স করা e

    জিএইচসিআই> এফ 3
    4
    জিএইচসিআই> চ (3)
    4
    জিএইচসিআই> (চ) 3
    4

    অবশ্যই যদি আপনি কোনও স্থান বা প্যারেন না ব্যবহার করেন তবে এটি সাধারণত কাজ করবে না, কেবল কারণ অভিব্যক্তিটি সঠিকভাবে টোকেনযুক্ত নয় isn't

    জিএইচসিআই> এফ 3

    << ইন্টারেক্টিভ>: 7: 1:
        সুযোগ নেই:
        'এফ 3' সম্ভবত আপনি বোঝাতে চেয়েছেন 'চ' (লাইন 2)

    তবে এই ভাষাগুলি যদি 1-বর্ণের পরিবর্তনশীল নামে সীমাবদ্ধ থাকে তবে এটি খুব কার্যকর হবে work

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

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


বুঝেছি, প্রশ্নটি নিখুঁত নয়। :) সুতরাং আঁকার উপসংহারটি হ'ল: "প্যারেন্টিসেস স্কেল করে না।"
pvorb

2
বা অ-কার্যকরী ভাষাগুলি যা প্রথম বন্ধনী প্রয়োজনে সর্বসম্মত; কয়েকটি উদাহরণের জন্য, স্মলটালকের রয়েছে object method: args, অবজেক্টিভ সি রয়েছে [object method: args], এবং রুবি এবং পার্ল উভয়ই ফাংশন এবং পদ্ধতি কলগুলিতে প্রথম বন্ধনী বাদ দেওয়ার অনুমতি দেয়, কেবল তাদের দ্ব্যর্থতা সমাধানের জন্য প্রয়োজনীয়।
hobbs

1

একটি ছোট historicalতিহাসিক স্পষ্টতা: গণিতে আসল স্বরলিপিটি বন্ধনী ছাড়া ছিল !

এক্সের একটি স্বেচ্ছাসেবী ফাংশনের জন্য স্বরলিপি এফএক্স জোহান বার্নৌল্লি প্রায় 1700 এর আগে লাইবনিজ ফাংশন সম্পর্কে কথা বলা শুরু করার পরে চালু করেছিলেন (আসলে বার্নোল্লি লিখেছিলেন ϕ x )। কিন্তু যে অনেক মানুষ যেখানে ইতিমধ্যে মত পাপ স্বরলিপি ব্যবহার করার পূর্বে এক্স বা LX (লগারিদম এক্স জন্য) নির্দিষ্ট কার্যাবলী এক্স , প্রথম বন্ধনী ছাড়া। আমি সন্দেহ করি যে কারণেই আজও অনেকে পাপ (এক্স) এর পরিবর্তে পাপ x লিখেন ।

ইউলার, যিনি বার্নৌলির শিক্ষার্থী ছিলেন, তিনি বার্নোলির এক্স-এক্স গ্রহণ করেছিলেন এবং গ্রীককে লাতিন অক্ষরে পরিবর্তন করেছিলেন, fx লিখেছিলেন । পরে তিনি লক্ষ্য করেছেন যে একটি "পরিমাণ" এর জন্য f টি বিভ্রান্ত করা সহজ হতে পারে এবং বিশ্বাস করতে পারে যে fx একটি পণ্য ছিল, তাই তিনি স্টারেটেট লিখেছিলেন f: x । সুতরাং স্বরলিপি চ (এক্স) ইউলারের কারণে নয়। অবশ্যই অয়লারের প্রয়োজন একই কারণে আমরা কার্যকরী প্রোগ্রামিং ভাষায় প্রথম বন্ধনী প্রয়োজন: উদাহরণস্বরূপ (fx) + y থেকে f (x + y) থেকে আলাদা করতে । আমি সন্দেহ করি যে লোকদের পরে লোকেরা প্রথম বন্ধনীকে ডিফল্ট হিসাবে গ্রহণ করেছিল কারণ তারা প্রধানত ইউরারের সাথে চ (অক্ষ + বি) এর মতো যৌগিক ভাব লিখতে দেখেছিল। তিনি খুব কমই লিখেছিলেন মাত্র এফএক্স

আরও দেখুন এই: আরও আগে ইউরার কি প্রথম বন্ধনী দিয়ে f (x) লিখেছিলেন?

আমি জানি না যে কার্যকরী প্রোগ্রামিং ভাষার ডিজাইনাররা বা ল্যাম্বদা ক্যালকুলাসের উদ্ভাবকরা তাদের স্বরলিপিটির rootsতিহাসিক মূল সম্পর্কে সচেতন ছিলেন কিনা। ব্যক্তিগতভাবে আমি প্রথম বন্ধন ছাড়াই স্বরলিপি খুঁজে পাই natural

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