পরিবর্তনশীল নামে ইউনিকোড অক্ষর ব্যবহার করা কি খারাপ? [বন্ধ]


82

আমি সম্প্রতি পাইথন 3-এ একটি র‌্যাঙ্কিং অ্যালগরিদম, অ্যালেগস্কিলকে প্রয়োগ করার চেষ্টা করেছি।

গণিতগুলি দেখতে দেখতে এখানে কী:

বিকল্প পাঠ

সত্যিই না.

এটি তখন আমি যা লিখেছিলাম:

t = (µw-µl)/c  # those are used in
e = ε/c        # multiple places.
σw_new = (σw**2 * (1 - (σw**2)/(c**2)*Wwin(t, e)) + γ**2)**.5

আমি আসলে ভেবেছিলাম পাইথন 3 এর দুর্ভাগ্য যেটি গ্রহণযোগ্য নয় বা ²পরিবর্তনশীল নাম হিসাবে গ্রহণ করা উচিত ।

>>> √ = lambda x: x**.5
  File "<stdin>", line 1
    √ = lambda x: x**.5
      ^
SyntaxError: invalid character in identifier

আমি কি মন থেকে দূরে আছি? আমার কি কেবলমাত্র একটি এএসসিআইআই সংস্করণের জন্য অবলম্বন করা উচিত? কেন? উপরোক্ত একটি ASCII শুধুমাত্র সংস্করণ সূত্রের সাথে সমতা জন্য বৈধতা কি কঠিন হবে না?

মনে মনে, আমি বুঝতে পারি কিছু ইউনিকোড গ্লাইফ একে অপরের মতো দেখতে লাগে এবং কিছু কিছু (বা এটি ▗▖) বা ╦ কেবল লিখিত কোডটিতে কোনও ধারণা করতে পারে না। তবে ম্যাথস বা অ্যারো গ্লাইফগুলির ক্ষেত্রে এটি খুব কমই হয়।


অনুরোধ অনুসারে, ASCII কেবলমাত্র সংস্করণ এর লাইন বরাবর কিছু হবে:

winner_sigma_new = ( winner_sigma ** 2 *
                    ( 1 -
                     ( winner_sigma ** 2 -
                       general_uncertainty ** 2
                     ) * Wwin(t,e)
                    ) + dynamics ** 2
                   )**.5

... অ্যালগরিদমের প্রতিটি পদক্ষেপে।


58
এটি উন্মাদ, সম্পূর্ণ অপঠনযোগ্য এবং অবর্ণনীয়ভাবে দুর্দান্ত।
ডোমিনিক ম্যাকডোনেল

2
ইউনিকোড সম্পর্কে কথা বলছি ... কোডিংহরর
blog/

3
আমি এটি খুব ভাল জিনিস পাই যে পাইথন পাটিগণিত অপারেশনগুলিকে ভেরিয়েবল হিসাবে গ্রহণ করে না। একটি বর্গক্ষেত্রের চিহ্নটি বর্গমূল গ্রহণের ক্রিয়াকলাপ বোঝাতে হবে এবং এটি পরিবর্তনশীল হওয়া উচিত নয়।
ডেভিড থর্নলি 21

4
@ ডেভিড, পাইথনে তেমন কোনও পার্থক্য নেই। বস্তুত, sqrt = lambda x: x**.5আমাকে একটা পায় ফাংশন (আরো সঠিকভাবে, একটি callable): sqrt(2) => 1.41421356237
Badp

4
OutputStream.🚽;

উত্তর:


54

আমি দৃ strongly়ভাবে অনুভব করি যে মস্তিষ্ক-মৃতের σসাথে সীমাবদ্ধ, কেবল প্রতিস্থাপন করা sবা sigmaবোকা হবে।

সম্ভাব্য লাভ কী? বেশ, দেখা যাক …

  • এটি পাঠযোগ্যতার উন্নতি করে? না, কিছুটা হলেও নয়। যদি তা হয় তবে মূল সূত্রটি নিঃসন্দেহে লাতিন বর্ণগুলিও ব্যবহার করত।

  • এটি লিখনযোগ্যতা উন্নতি করে? প্রথম নজরে, হ্যাঁ। তবে দ্বিতীয়, না। কারণ এই সূত্রটি কখনই পরিবর্তিত হবে না (ভাল, "কখনই")। সাধারণত কোড পরিবর্তন করার প্রয়োজন হয় না, বা এই ভেরিয়েবলগুলি ব্যবহার করে এটি প্রসারিত করার প্রয়োজন হয় না। সুতরাং লিখনযোগ্যতা হ'ল - এটি একবার - কোনও সমস্যা নয়।

ব্যক্তিগতভাবে, আমি মনে করি গাণিতিক সূত্রগুলির তুলনায় প্রোগ্রামিং ভাষার একটি সুবিধা রয়েছে: আপনি অর্থবোধক, অভিব্যক্তিপূর্ণ শনাক্তকারী ব্যবহার করতে পারেন। গণিতে, সাধারণত এটি হয় না, তাই আমরা মাঝেমধ্যে এগুলিকে গ্রীক বানিয়ে এক-বর্ণের ভেরিয়েবল অবলম্বন করি।

তবে গ্রীক সমস্যা নয়। অ-বর্ণনামূলক, এক-বর্ণের শনাক্তকারীরা।

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


3
কিছু সরঞ্জাম ইউনিকোড অক্ষরগুলি পড়তে পারে না, যদিও প্রোগ্রামিং ভাষাটি তাদের ব্যবহার সমর্থন করে। অ-ইউনিকোড ভেরিয়েবল নামগুলি ব্যবহার করার জন্য আমি এটিকে মস্তিষ্ক-মৃত সিদ্ধান্ত বলব না, এবং এটি আপনার পোস্টের 2.5 বছর পরে সত্য holds
গ্যারি এস ওয়েওয়ার

44
@ গ্যারি "কিছু সরঞ্জাম ইউনিকোড পড়তে পারে না" - সুতরাং সরঞ্জামগুলি পরিবর্তন করুন, সেগুলি ক্র্যাপ। দুঃখিত, এটি ২০১৩ এবং এ জাতীয় সরঞ্জামগুলির জন্য আমার শূন্য সহানুভূতি এবং এমনকি কম ধৈর্য রয়েছে। ত্রুটিযুক্ত সরঞ্জামগুলিতে অবিচ্ছিন্নভাবে সরবরাহ করা অগ্রগতি রোধ করে।
কনরাড রুডল্ফ

3
@ কনরাডরুডলফ আমার বক্তব্যটি হ'ল কিছু সরঞ্জাম যেকোন কারণে ইউনিকোড সমর্থন করে না এবং সমর্থন করতে পারে না, সুতরাং "সরঞ্জামগুলি পরিবর্তন করুন" সবসময় সঠিক উত্তর হয় না। আমি সম্মত হই যে ইউনিকোড ভাল এবং সরঞ্জামগুলি এটি বোঝা উচিত তবে এটি সর্বদা বিকল্প নয়।

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

8
আপনি যে "ইন্টারচেঞ্জ" এর কথা বলছেন এটি প্রাথমিকভাবে জাভা এবং উইন্ডোজ বিকাশকারীদের সমস্যা বলে মনে হচ্ছে। এক দশক আগে লিনাক্স বিশ্বের বেশিরভাগ ইউটিএফ -8-তে মানিকৃত। এটি অবশ্যই একটি সরঞ্জামচেন সমস্যা। খারাপ সরঞ্জাম ব্যবহার বন্ধ করুন।
সমৃদ্ধ remer

33

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

বিকল্প সম্পর্কে কী বলা যায় এবং কেবল শীর্ষে থাকা //µ = uএবং এসসিআই তে সমস্ত লিখুন?


14
যাইহোক, সমস্ত কীবোর্ডগুলি স্ট্যান্ডার্ড কোডিং কীগুলি স্বাচ্ছন্দ্যে উদ্ভাসিত করবেন না। আমার কীবোর্ড লেআউটটিতে টাইপ করতে তিনটি কী প্রয়োজন {এবং }(যা টিটিএস বিটিডব্লুতে ব্যর্থ হয়) এবং সম্পূর্ণরূপে অভাব `এবং ~... যদি কোনও কাস্টম কীম্যাপ ব্যবহার না করে তবে কোনও বাশ স্ক্রিপ্ট আমাকে কীভাবে একটি চরিত্রের মানচিত্র ব্যবহারের প্রয়োজন হবে না? :)
Badp

4
আমি আমার নেটিভ সাথে একটি গ্রীক কীবোর্ড ইনস্টল করেছি এবং একটি কীস্ট্রোক সহকারীর মধ্যে স্যুইচ করতে পারি। আইএম / ইমেইলে গণিত সম্পর্কে কথা বলার সময় এটি দরকারী ... এবং আমি ইতিমধ্যে পাইথন স্ক্রিপ্টগুলিতে এটি ব্যবহার করার কথা ভেবেছিলাম।
লাইওরি

18
বিতৃষ্ণা। কেবল গ্রীক অক্ষরগুলি সরল অক্ষর দ্বারা প্রতিস্থাপন করছেন? যাই হোক না কেন লাভ। অর্থপূর্ণ পরিবর্তনশীল নাম ব্যবহার করুন, বা কাগজ থেকে থাকা নামগুলি আটকে দিন। সৃজনশীল হওয়ার কোনও কারণ নেই।
কনরাড রুডল্ফ

12
কেবল µ এবং μ ... মিশ্রিত করবেন না
এন্ডোলিথ

4
যুক্তিসঙ্গত সম্পাদকদের ইউনিকোডের জন্য যুক্তিসঙ্গত ইনপুট পদ্ধতি রয়েছে যা এ জাতীয় কোড সম্পাদনা করা সহজ করে। উদাহরণস্বরূপ, ইম্যাক্স সমর্থন করে (অন্যান্য জিনিসগুলির মধ্যে) TeXএবং rfc1345TeXএটি যেমন শোনাচ্ছে ঠিক তেমনই; আপনার টাইপ করতে দেয় \sigmaজন্য σএবং \toজন্য rfc1345তোমার মত কিছু সমন্বয় দেয় &s*জন্য σএবং &->জন্য । থাম্বের নিয়ম হিসাবে, আমি ইমাকগুলির চেয়ে কম সক্ষম সম্পাদক ব্যবহার করে প্রোগ্রামারদের সমন্বিত করার বিষয়ে চিন্তা করি না।
টিখন জেলভিস

31

এই যুক্তি ধরে নিয়েছে যে ইউনিকোড টাইপ করা বা গ্রীক বর্ণগুলি পড়তে আপনার কোনও সমস্যা নেই

এই যুক্তি এখানে: আপনি পাই বা বৃত্তাকার_আরটিও পছন্দ করবেন?

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

তবে কি হবে

winner_sigma_new = ( winner_sigma ** 2 *
                    ( 1 -
                     ( winner_sigma ** 2 -
                       general_uncertainty ** 2
                     ) * Wwin(t,e)
                    ) + dynamics ** 2
                   )**.5

অথবা

σw_new = (σw**2 * (1 - (σw**2)/(c**2)*Wwin(t, e)) + γ**2)**.5

আমার কাছে, উভয় সংস্করণ সমানভাবে অস্বচ্ছ, ঠিক যেমন piবা πহয় গ্রেড স্কুলে আমি এই সূত্রটি শিখিনি except winner_sigmaএবং Wwinআমার কাছে বা অন্য কেউ কোডটি পড়ার জন্য কিছুই বোঝায় না এবং ব্যবহার না করা σwএটিকে আরও ভাল করে না।

সুতরাং, বর্ণনামূলক নামগুলি ব্যবহার করে, যেমন total_score, winning_ratioইত্যাদির দ্বারা কেবল গ্রীক অক্ষর উচ্চারণ করা আসকি নাম ব্যবহারের চেয়ে পাঠযোগ্যতা বৃদ্ধি পাবে । সমস্যাটি হ'ল আমি গ্রীক অক্ষরগুলি পড়তে পারি না, তবে আমি অক্ষরগুলিকে (গ্রীক বা না) ভেরিয়েবলের "অর্থ" দিয়ে সংযুক্ত করতে পারি না।

আপনি অবশ্যই সমস্যা নিজেকে বোঝা যখন আপনি মন্তব্য করেছেন: You should have seen the paper. It's just eight pages...। সমস্যাটি যদি আপনি কোনও কাগজে আপনার পরিবর্তনশীল নামটির ভিত্তিতে ভিত্তি করে থাকেন, যা পাঠযোগ্যতার চেয়ে সংক্ষিপ্ততার জন্য একক-বর্ণের নাম পছন্দ করে (তারা গ্রীক কিনা নির্বিশেষে), তারপরে লোকেরা অক্ষরের সাথে সংযুক্ত করতে সক্ষম হতে কাগজটি পড়তে হবে "মানে"; এর অর্থ আপনি আপনার কোড বোঝার জন্য লোকদের কৃত্রিম বাধা দিচ্ছেন এবং এটি সর্বদা খারাপ জিনিস।

এমনকি আপনি যখন কোনও ASCII- কেবল বিশ্বে বাস করেন তখনও উভয়ই a * b / 2এবং ত্রিভুজ অঞ্চল সূত্রের উভয়ই alpha * beta / 2সমানভাবে অস্বচ্ছ রেন্ডারিং হয় are height * base / 2সূত্রটি জটিলতায় বেড়ে যাওয়ার সাথে একক-বর্ণের ভেরিয়েবলগুলি ব্যবহারের অপঠনযোগ্যতা তাত্পর্যপূর্ণভাবে বৃদ্ধি পায় এবং অ্যালেগস্কিল সূত্র অবশ্যই তুচ্ছ সূত্র নয়।

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

গ্রেড স্কুলে পড়ার সময়, আমি অবশ্যই গাণিতিক ভাবগুলি যেমন: +, -,, ×, ÷, বুনিয়াদি গণিতের জন্য এবং √ () একটি বর্গমূলের ফাংশন হিসাবে প্রতীক ব্যবহার করে দেখব না। আমি গ্রেড স্কুল স্নাতক শেষ করার পরে, আমি একটি চকচকে নতুন প্রতীক যুক্ত করতে আপত্তি করব না: ration সংহতকরণের জন্য। প্রবণতাটি লক্ষ্য করুন, এগুলি সমস্ত অপারেটর। চলক নামের তুলনায় অপারেটরগুলি অনেক বেশি ব্যবহৃত হয়, তবে তারা সম্পূর্ণ ভিন্ন অর্থের জন্য কম ব্যবহৃত হয় (ক্ষেত্রে যেখানে গণিতবিদগণ অপারেটরদের পুনরায় ব্যবহার করেন, নতুন অর্থ প্রায়শই এখনও পুরানো অর্থের কিছু প্রাথমিক বৈশিষ্ট্য ধারণ করে; এটি ক্ষেত্রে এটি নয়) পরিবর্তনশীল নাম পুনরায় ব্যবহার করার সময়)।

উপসংহারে, না, পরিবর্তনশীল নামের জন্য ইউনিকোড অক্ষর ব্যবহার করা খারাপ নয়; তবে, পরিবর্তনশীল নামের জন্য একক বর্ণের নাম ব্যবহার করা সবসময় খারাপ, এবং ইউনিকোড নাম ব্যবহার করার অনুমতি দেওয়া একক বর্ণের পরিবর্তনশীল নাম ব্যবহার করার লাইসেন্স নয়।


9
সত্যি কথা বলতে, এখানে সূত্রগুলি আমি error_on_measured_skill_with_99th_percent_confidenceপরিবর্তে ব্যবহার করার পরেও বেশি অর্থবোধ করে না sigma
Badp

4
@ এমডিপি: দীর্ঘ নাম! = ভাল নাম। তবুও, এমন কিছু অনুষ্ঠান রয়েছে যেখানে আপনার পক্ষে একটি ভাল নাম চয়ন করা অসম্ভব (উদাহরণস্বরূপ যখন আপনি কেবল সূত্রটি বুঝতে পারেন তবে সূত্রের প্রতিটি অংশ কী করে (যা সম্পূর্ণ আলাদাভাবে বোঝার স্তর গ্রহণ করে) পুরোপুরি বুঝতে পারেন না), তারপরে সেই ক্ষেত্রে, দ্বিতীয় সর্বোত্তম বিকল্প হ'ল আপনার গাধাটিকে কিছু মন্তব্য দিয়ে আচ্ছাদন করা (এগুলি কোনও বাহ্যিক কাগজে প্রেরণের চেয়ে ভাল)। একটি ডাটা অভিধান থাকে যার ব্যাখ্যা করেন কি পরিবর্তনশীল নামের যেমন বোঝায় যোগ করুন // σw = skill level measurement error, ইত্যাদি
থাক রায়ান

1
@ এমডিপি: সত্যি বলতে কি সিগমা কিছু ফজ ফ্যাক্টরকে বোঝায় (তাই বলতে গেলে), সিগমা আমাকে কী আঘাত করে তার চেয়ে সূত্র সম্পর্কে কিছুটা ভাল বোঝার সুযোগ দেয়। সূত্রটি যখন বুঝতে শুরু করা কঠিন তখন আপনি তার উপরে আরও অস্বচ্ছতা যুক্ত করতে চান না।
মিথ্যা রায়ান

2
হ্যাঁ. এই. দুর্ভাগ্যক্রমে, আমার উত্তর লেখার সময় আমি এটিকে উপেক্ষা করেছি।
কনরাড রুডল্ফ

3
ওয়েল, পরিসংখ্যান এর সাথে সম্পর্কিত কিছু কাজ কেউ জানে যে σ মানে "স্ট্যানডার্ড ডেভিয়েশন"। এটি সেই ডোমেনের একটি খুব সুপরিচিত মানক প্রতীক।
ট্রিগ

14

আপনি কোড বোঝেন? যাদের পড়ার দরকার আছে তারা সবাই কি করে? যদি তা হয়, কোনও সমস্যা নেই।

ব্যক্তিগতভাবে আমি কেবলমাত্র ASCII- র উত্স কোডটি দেখে খুশি হব।


সম্পন্ন. (আমি ধরেছি যে শেষ লাইনটি আপনি কোডের কেবলমাত্র ASCII সংস্করণটি দেখতে বলছিলেন?) [] (HTTP: // ~)
Badp

4
@ বিডিপি: না, এটি কেবলমাত্র এএসসিআইআই কোডের মৃত্যুর জন্য জিজ্ঞাসা করছিল।

উইন্ডোজ 1252 সিস্টেমে অবতরণ করার সময় ইউনিকোড উত্স ফাইলগুলির কী হয় তা আপনি যতক্ষণ না দেখতে শুরু করেন ...

1
@ থরবজর্ন: যদি তারা বিওএম ধারণ করে তবে আশা করি কিছুই হবে না।

9

হ্যাঁ, আপনি নিজের মনের বাইরে রয়েছেন। আমি ব্যক্তিগতভাবে একটি মন্তব্যে কাগজ এবং সূত্র নম্বরটি উল্লেখ করব এবং সোজা ASCII তে সবকিছু লিখব। তারপরে, আগ্রহী যে কেউ কোড এবং সূত্রটি সহকারে সক্ষম হবেন।


5
কোড এবং সূত্রটি প্রথম স্থানে মিলেছে কিনা তা নিশ্চিত করা আমার পক্ষে কঠিন ছিল ...
Badp

10
@ পল: ভাগ্যক্রমে, ইউনিকোড> 10 বছর বয়সী যাতে আপত্তিটির প্রতি যত্ন নেওয়া হয়। এবং যদিও বিভিন্ন ইউটিএফগুলির মধ্যে কোনও স্পষ্ট বিজয়ী নেই, এটি কোনও সমস্যা নয়: একটি হওয়ার কথা ছিল না। এগুলিকে আলাদা করে বলা সফ্টওয়্যারটির পক্ষে তুচ্ছ।
কনরাড রুডল্ফ

1
@ কনরাড: আমার অর্থ এখন থেকে 10 বছর । এখনও বেশ কয়েকটি প্রোগ্রাম ইউনিকোড সমর্থন করে না। তদুপরি, আমি আপনার এই দাবির সাথে একমত নই - জেনেরিক বিপরীত রুটিন লিখতে তুচ্ছ নয় যা সমস্ত 3 টি ইউএফএস পরিচালনা করে। সুস্পষ্ট বিজয়ী হওয়া দরকার। 3 টি পৃথক ইউটিএফ সমর্থন করার কোনও বুদ্ধি নেই (আসুন আমরা এখনও অন্য কোড পৃষ্ঠাটি বিবেচনা না করি)।
পল নাথান

3
@ পল: আপনার "জেনেরিক বিপরীত রুটিন" কতবার লিখতে হবে? তিনটি ইউটিএফ বিভিন্ন উদ্দেশ্যে কাজ করে এবং আমি মনে করি না যে আপনি কখনও আপনার একীকরণের ইচ্ছাটি অর্জন করতে যাচ্ছেন।
ডিন হার্ডিং

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

5

আমি বলব ইউনিকোড ভেরিয়েবলের নাম ব্যবহার করা দুটো কারণে খারাপ ধারণা:

  1. তারা টাইপ করার জন্য একটি পিআইটিএ।

  2. এগুলি প্রায়শই ইংরেজি বর্ণগুলির মতো দেখতে প্রায় একই রকম থাকে। এই কারণেই আমি গণিতের স্বরলিপিতে গ্রীক বর্ণগুলি দেখতে ঘৃণা করি। পিএকে বাদ দিয়ে আরএইচও বলার চেষ্টা করুন। এটা সহজ না.


6
আপনি তাদের টাইপ করতে কি ব্যবহার করছেন তা নির্ভর করে।
এন্ডোলিথ

4

এই এক ক্ষেত্রে, একটি গণিতের জটিল সূত্র, আমি এটির জন্য বলব।

আমি 20 বছরের মধ্যে বলতে পারি যে এই জটিল এবং গ্রীক অক্ষরগুলি এটিকে মূল গণিতের কাছাকাছি রাখে না এমন আমাকে কখনও কোডিং করতে হয়নি। যদি আপনি এটি বুঝতে না পারেন তবে আপনার এটি বজায় রাখা উচিত নয়।

এই বলে যে, যদি আপনি আমাকে যে বারগ স্ট্যান্ডার্ড কোডটি দিয়েছিলেন আমাকে যদি ever এবং maintain বজায় রাখতে হয় তবে আপনি কোথায় থাকবেন তা আমি খুঁজে বের করব ...


3
  • প্রো: সুন্দর লাগছে
  • কোন: ইউনিকোড অক্ষর এবং তাই পুরো অর্থটি সরঞ্জাম চেইনে হারিয়ে যেতে পারে (সম্পাদক, কোড ফর্ম্যাটার, সংস্করণ নিয়ন্ত্রণ, পুরানো সংকলক)

আপনার জন্য ঝুঁকি কত বড়? লাভ কি ঝুঁকি ছাড়িয়ে যায়?


2
সরঞ্জাম চেইন? কি সরঞ্জাম চেইন?
Badp

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

2

খুব দূরের ভবিষ্যতের কোনও এক সময়, আমরা সকলেই পাঠ্য সম্পাদক / আইডিই / ওয়েব ব্রাউজারগুলি ব্যবহার করব যা ক্লাসিকাল গ্রীক অক্ষর ইত্যাদি সহ সম্পাদনা পাঠ্যকে সহজ করে তোলে ( "বর্তমানে আমরা যে সরঞ্জামগুলিতে ব্যবহার করি সেগুলিতে কার্যকারিতা ...)

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

(ঘটনাচক্রে যে কারণে আপনি গ্রীক অক্ষর রাখতে পারেন তবে পাইথন শনাক্তকারীগুলিতে বর্গক্ষেত্রের চিহ্ন নয়) গ্রীক অক্ষরগুলি ইউনিকোড লেটার হিসাবে শ্রেণিবদ্ধ করা হয়েছে তবে বর্গমূলের চিহ্নটি একটি অক্ষর নয়; দেখুন http://www.python.org / ডেভ / পেপস / পিপ -3131 / )


আমি মনে করি যে এমন কোনও IME তৈরি করা একটি দুর্দান্ত ধারণা হবে যা ব্যবহারকারীদের জন্য অক্ষরগুলি অনুবাদ করতে পারে যা তাদের সরাসরি ইনপুট করতে পারে না।
AndrejaKo

হ্যাঁ, কম বা কম যখন আমরা ডিভোরাক এ চলেছি। :(
Badp

1
@ আন্ড্রেজাকো লিনাক্সে এমন একটি আইএমই রয়েছে যা ল্যাটেক্স স্টাইল কমান্ড গ্রহণ করে - এটি আপনি টাইপ করেন \muএবং এটি অন্তর্নিবিষ্ট হয় µ
Badp

@ বাড্প অনেক ধন্যবাদ! আমি পরের বার বুট করার চেষ্টা করব!
AndrejaKo

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

2

আপনি কোন ভাষা / সংকলক ব্যবহার করছেন তা আপনি বলেননি, তবে সাধারণত পরিবর্তনশীল নামের নিয়মটি হ'ল তাদের অবশ্যই বর্ণমালা বা আন্ডারস্কোর দিয়ে শুরু করতে হবে এবং কেবলমাত্র বর্ণমালা এবং আন্ডারস্কোর থাকতে হবে। একটি ইউনিকোড al বর্ণানুক্রমিক হিসাবে বিবেচিত হবে না, কারণ এটি একটি বর্ণের পরিবর্তে গাণিতিক প্রতীক। তবে σ হতে পারে (যেহেতু এটি গ্রীক বর্ণমালায় রয়েছে) এবং á সম্ভবত বর্ণমালা হিসাবে বিবেচিত হবে।


1

আমি স্ট্যাক ওভারফ্লোতে একই ধরণের প্রশ্ন পোস্ট করেছি

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

একটি ডিবাগিং সেশনটি কল্পনা করুন: অবশ্যই কোডটি যে সূত্রটি গণনা করা হয়েছিল তা সঠিক কিনা তা দেখার জন্য আপনি অবশ্যই সর্বদা হাতে লেখা যেতে পারেন। তবে নব্বই শতাংশ সময়, আপনি বিরক্ত করবেন না এবং বাগটি দীর্ঘ, দীর্ঘ সময়ের জন্য লুকিয়ে থাকতে পারে। এবং কেউ কখনও এই .তুস্রাবের 7-লাইন, সরল ASCII সূত্রটি দেখতে আগ্রহী নয়। অবশ্যই, ইউনিকোড ব্যবহার টেক্সট-রেন্ডার সূত্রের মতো ভাল নয়, তবে এটি আরও ভাল।

দীর্ঘ বর্ণনামূলক নাম ব্যবহারের বিকল্পটি ব্যবহার্য নয় কারণ গণিতে, সনাক্তকারী সংক্ষিপ্ত না হলে সূত্রটি আরও জটিল দেখাবে (আপনি কেন XVIII শতাব্দীর আশেপাশের লোকেরা "+" দ্বারা "প্লাস" প্রতিস্থাপন শুরু করেছিলেন? এবং "বিয়োগ" দ্বারা "-"?)।

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

√ = math.sqrt #function alias
c² = c**2
σʷ² = σʷ**2
γ² = γ**2
σ′ʷ = √(σʷ² * (1 - (σʷ²/c²)*Wʷⁱⁿ(t, e)) + γ²)

যেখানে আমি সুপারস্ক্রিপ্ট ব্যবহার করেছি কারণ ইউনিকোডে কোনও সাবস্ক্রিপ্ট সমতুল্য নেই। (দুর্ভাগ্যক্রমে, ইউনিকোড সাবস্ক্রিপ্ট চরিত্রের সেটটি খুব সীমাবদ্ধ I

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


0

এই কোডটি কি কেবল আপনার ব্যক্তিগত প্রকল্পের জন্য? যদি তাই হয়, বাদামে যান, যা খুশি তা ব্যবহার করুন।

এই কোডটি কি অন্যদের ব্যবহারের জন্য বোঝানো হয়েছে? অর্থাত্, এবং কোনও ধরণের ওপেন সোর্স অ্যাপ্লিকেশন? যদি তা হয় তবে আপনি সম্ভবত সমস্যার জন্য জিজ্ঞাসা করছেন কারণ বিভিন্ন প্রোগ্রামাররা বিভিন্ন সম্পাদক ব্যবহার করে এবং আপনি নিশ্চিত নন যে সমস্ত সম্পাদক সঠিকভাবে ইউনিকোডকে সমর্থন করবেন। প্লিজ সমস্ত কমান্ড শেলগুলি সঠিকভাবে প্রদর্শন করবে না যখন সোর্স কোড ফাইলটি'd / cat'd টাইপ করা হয়, এবং আপনি যদি এইচটিএমএল এর মধ্যে এটি প্রদর্শনের প্রয়োজন হয় তবে আপনি সমস্যাগুলিতে চলে যেতে পারেন।


0

ব্যক্তিগতভাবে আমি এই প্রসঙ্গে গণিতবিদদের জন্য প্রোগ্রামিং ভাষাগুলি একটি সরঞ্জাম হিসাবে বিবেচনা করতে অনুপ্রাণিত হই, কারণ আমি আসলে গণিত ব্যবহার করি না যা আমার জীবনের মতো দেখায়। : ডি এবং নিশ্চিত, ɛ বা σ বা যা কিছু ব্যবহার করবেন না - সে প্রসঙ্গে এটি আসলে আরও সুগঠিত।

(যদিও, আমাকে বলতেই হবে, আমার পছন্দটি হ'ল চক্রের নাম হিসাবে সরাসরি পদ্ধতি কল হিসাবে সুপারসক্রিপ্ট নম্বর সমর্থন করা eg যেমন 2 eg = 2 ** 2 = 4, ইত্যাদি)


-2

কী হয় σ, কি W, কি ε, cএবং কি γ?
আপনি আপনার ভেরিয়েবলের নাম এমনভাবে রাখবেন যাতে তাদের উদ্দেশ্য কী তা ব্যাখ্যা করে।
আমি ইউনিকোড বা এএসসিআইআই-সংস্করণটি রক্ষণ করতে আমার পক্ষে ব্যক্তিগতভাবে কাউকে মারব, যদিও এএসসিআই-সংস্করণটি আরও ভাল।

যা মন্দ তা ভেরিয়েবল σবা sবা sigmaবা valueবা বলা হয় var1, কারণ এটি কোনও তথ্য দেয় না।

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


2
যদি সে কাগজের অনুলিপি / পেস্ট করে এবং তারপরে একটি চরিত্রের পরিবর্তনশীল নাম থাকা সত্ত্বেও এটিকে মন্তব্য হিসাবে তার উত্স কোডের অংশ করে তোলে?
ব্রায়ান

19
সমস্যাযুক্ত ডোমেনের সাথে পরিচিতদের মধ্যে এই পরিবর্তনশীল নামের অনেকেরই দৃ strong় অর্থ রয়েছে। ডোমেনটির সাথে পরিচিত কারও কাছে, সিগমা বা rho এর মতো নামের চেয়ে ইংরেজি নামগুলি কম পঠনযোগ্য be
dsimcha

3
আমি ভয় করি এর মতো rank_error_with_99_pct_confidenceকিছুটা খুব দীর্ঘ এবং প্রকৃত সূত্রগুলি বোঝার পক্ষে সহজ করে না। অ্যালেগসিল / ট্রুস্কিল এই সিগমা কল করে, তাই আমি বিশ্বাস করি যে তাদের কাছে থাকা ডোমেন নির্দিষ্ট নামটি বজায় রাখা আমার পক্ষে পুরোপুরি গ্রহণযোগ্য।
Badp

3
@ এমডিপি: ভাল নামগুলি সংক্ষিপ্ত এবং বর্ণনামূলক; তবে এটি সম্পূর্ণ বর্ণনামূলক হতে হবে না। আপনার সিগমার জন্য, rank_errorডকুমেন্টেশন / মন্তব্যে কোথাও 99 শতাংশের আত্মবিশ্বাস সম্পর্কে অতিরিক্ত বিশদ ব্যবহার এবং ব্যবহার করা পুরোপুরি ভাল ।
মিথ্যা রায়ান

1
@ ডিডিমচা: আমি মনে করি যে কোনও নির্দিষ্ট ডোমেনের সাথে পরিচিত তাদের তুলনায় খুব কমই বিরল, যারা কখনও এটি শোনেনি। এবং আমি মনে করি যে ডোমেনটির সাথে পরিচিত তারা সাধারণ ইংরেজী নামগুলি মোকাবেলা করতে সক্ষম হবে, যদিও এর সাথে পরিচিত নয় তারা যদি গ্রীক এক-অক্ষর-ভেরিয়েবল দ্বারা সমস্ত কিছু অবলম্বন করে তবে কী ঘটছে তা বুঝতে সম্পূর্ণরূপে অক্ষম হবে।
back2dos

-2

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

একটি সনাক্তকারীতে √ বা ² ব্যবহার করা - এত বেশি নয়।

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