শনাক্তকারীদের শ্বেত স্থান কখনও মূর্খতাযুক্ত ছিল? [বন্ধ]


43

সি # শৈলীর সাহায্যে শব্দের সীমানা নির্ধারণের জন্য ক্যামেলকেস ব্যবহার করার পরামর্শ দেয় । লিস্প traditionতিহ্য পরিবর্তে-ড্যাশগুলি ব্যবহারের পরামর্শ দেয়।

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

কিছু স্কিম বাস্তবায়নে ফাঁকা জায়গাগুলি সহ সনাক্তকারীদের পাওয়া সম্ভব তবে এটি বহুলভাবে দেখা অনুশীলন নয়। এখানে একটি উদাহরণ:

Petite Chez Scheme Version 8.4
Copyright (c) 1985-2011 Cadence Research Systems

> (define |hey there| 100)
> (define |x y z| 200)
> (list |hey there| |x y z|)
(100 200)

আপনার যদি নেমস্পেস থাকে তবে তা যৌগিক শনাক্তকারীর একটি রূপ। যেমন সি ++: bobs_utilities :: string_functions :: scramble। এটি একটি নাম এবং আমরা চাইলে আমরা স্বেচ্ছাসেবী অন্তর্ভুক্ত করতে পারি কারণ এটি সিনট্যাক্স, একটি সাধারণ টোকেন নয়। একাধিক উপাদান সহ নামগুলি বিমূর্ত বাক্য গঠন হতে চায়; একক সনাক্তকারী হিসাবে জুতোহাঁটির নেমস্পেসের তথ্য মূলত পাঠ্যের অভ্যন্তরের কাঠামোর প্রতিনিধিত্ব করার জন্য যেখানে "কাঠামোর প্রতিনিধিত্ব করার পদ্ধতি আপনি নেই" তেমন একটি "নেম ম্যাঙ্গেলিং" হ্যাক।
কাজ

জেএসে খুব সাধারণ, যার প্রাথমিক লেখক ছিলেন স্কিম লোক।
এরিক রেপেন

1
@ এরিক রেপেন যতদূর আমি জানি, জাভাস্ক্রিপ্ট শনাক্তকারীদের অংশ হিসাবে স্থানগুলি বৈধ নয় ...
ইজকাটা

নং ওয়ার্সের জন্য নয় সম্পত্তি নামের জন্য আমরা বন্ধনীগুলির মধ্যে যে কোনও স্ট্রিং ব্যবহার করতে পারি। উদাহরণস্বরূপ alert({'some Prop':'bob'}['some Prop']);তবে যদি সেই স্ট্রিং সম্পত্তির নামগুলি শনাক্তকারী / লেবেল পরীক্ষায় ব্যর্থ হয় তবে আপনি এগুলি বিন্দু চিহ্নিতকরণ সহ ব্যবহার করতে পারবেন না।
এরিক রেপেন

রুবিতে আপনি: define_singleton_method "sjdlkfjsljk#$SDEF SDFSDF@# @#$!!~" do; puts 42; end;এবং তারপর আপনি পারেন: send "sjdlkfjsljk#$SDEF SDFSDF@# @#$!!~"তবে এটি সাধারণ নয়।
দারেক ন্যাডজা

উত্তর:


66

ফরট্রেন সংকলকগণ স্পেসগুলি উপেক্ষা করেছেন:

   result = value * factor  
   r e s u l t = val ue * fac tor
   result=value*factor`

সংকলকটি যতটা উদ্বিগ্ন ছিল তত অভিন্ন ছিল।

কিছু এসকিউএল উপভাষাগুলি কলামের নামগুলিতে এম্বেড থাকা ফাঁকা স্থানগুলিকে অনুমতি দেয় তবে সেগুলি ব্যবহারের আগে তাদের ব্যাককোটিস বা অন্য কোনও ডিলিমিটার দ্বারা ঘিরে রাখা দরকার।


7
+1, এটি আমার কাছে নতুন। আমি সবসময় ভাবতাম কেন আমি কেবল
ফোর্টরানে

20
সনের ফররান ম্যানুয়ালটিতে এই বাক্যটি অন্তর্ভুক্ত ছিল: "ক্রমাগতভাবে ফাঁক দিয়ে শব্দগুলি পৃথক করা দশম শতাব্দীর প্রায় একটি সাধারণ রীতি হয়ে দাঁড়িয়েছিল এবং ১৯৫7 সাল পর্যন্ত স্থায়ী হয়েছিল, যখন ফোরট্রান অনুশীলন ত্যাগ করেছিল।"
blrfl

26

আপনি যদি বর্গক্ষেত্র বন্ধনীর সাহায্যে শনাক্তকারীকে ঘিরে থাকেন তবে ভিজ্যুয়াল বেসিক (এবং ভিবিএস স্ক্রিপ্ট) শনাক্তকারীগুলিতে শ্বেতস্পেসের অনুমতি দেয়।

Dim [Hello World]
[Hello World] = 123

তবে এটি করা খুব বিরল।


13

এসকিউএল গণনা করে?

create table "Registered Members" (
    "Full Name" varchar(100),
    "Mailing Address" varchar(100),
    etc...
);

3
এটি অবশ্যই সম্ভব, তবে আমি এটিকে অদ্ভুত বলব না।
জোচিম সৌর

3
আপনার যদি মুখোশ লাগানোর দরকার হয় তবে এটি উত্সাহিত বলে মনে হচ্ছে না।
ব্যবহারকারী অজানা

11

ওয়েল হোয়াইটস্পেস সব সম্পর্কে ... হোয়াইটস্পেস:

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

দুর্ভাগ্যক্রমে মার্কডাউন এর বাক্য গঠন সমর্থন করে না এবং আমি আপনাকে কিছু কোড প্রদর্শন করতে পারি না, তবে উইকিপিডিয়ায় একটি মানব বান্ধব কোডের নমুনা রয়েছে


@ sepp2k হোয়াইটস্পেসের লেবেল রয়েছে।
ইয়ানিস

ওহ আপনি ঠিক. তাহলে কখনো কিছু মনে করো না.
sepp2k

"বেশিরভাগ আধুনিক প্রোগ্রামিং ভাষাগুলি সাদা স্থানের অক্ষর বিবেচনা করে না"। পাইথন করেন :)
jadkik94

@ jadkik94 পাইথন হোয়াইটস্পেস ব্যবহার করে তবে পরিচয় হিসাবে পরিচয় হিসাবে নয় ation
ইয়ানিস

পছন্দ করেছেন এবং এটিও সত্য যে বেশিরভাগ ভাষা
শ্বেত

11

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

VHDL পলান তাদের মধ্যে উল্লেখযোগ্য ব্যবধান সহ শনাক্তকারী অনুমতি দেয়: \foo bar\। এই শনাক্তকারী হিসাবে ব্যবহারের কীওয়ার্ড মঞ্জুরি দেয় \and\, কোনো চরিত্র \n<42>\শনাক্তকারী এবং কেস সংবেদনশীলতা ( \Foo\এবং \foo\যখন ভিন্ন Fooএবং fooসমতুল্য, এবং থেকে ভিন্ন হয় \Foo\এবং\foo\!)। ভেরিলগ এর বেশিরভাগ বৈশিষ্ট্য সহ সনাক্তকারীকেও গতিশীল করেছে (সাধারণ শনাক্তকারীগুলি সংবেদনশীল এবং এগুলি অহেতুকভাবে পালিয়ে যাওয়া অন্য শনাক্তকারী তৈরি করে না) তবে তাদের মধ্যে ফাঁকা স্থানগুলিকে অনুমতি দেয় না। ভিএইচডিএল এবং ভেরিলোগের পালিয়ে যাওয়া শনাক্তকারীদের প্রয়োজনীয়তাটি এ থেকে আসে যে তারা প্রায়শই অন্যান্য উত্স থেকে স্বয়ংক্রিয়ভাবে উত্পাদিত হয় (যেমন স্কিম্যাটিক) যেখানে শনাক্তকারীদের সাধারণত প্রোগ্রামিং ভাষার মতোই বাধা থাকে না; আফাইক, তারা অন্যান্য পরিস্থিতিতে মূ .়ভাবে ব্যবহৃত হয় না।


আমি মনে করি (1980 এর দশকের দিকে ফিরে তাকাই!) যে করাল একই রকম কিছু করেছিল - আপনার চলক নামেরে সাদা স্থান থাকতে পারে (এবং করতেও), তবে কীওয়ার্ডগুলির পরে তাদের চারপাশে উদ্ধৃতি (যেমন 'DEFINE'এবং একটি ব্যক্তিগত প্রিয়, 'COMMENT'আমরা ব্যবহার করি) used এগুলি অন-উদ্ধৃত সংস্করণগুলিতে প্রতিস্থাপন করতে ম্যাক্রো প্রসেসর ব্যবহার করতে)।
এএটি

10

আপনি যদি মিডিয়াউইকি উইকিটেক্সট কোনও ভাষা হিসাবে বিবেচনা করেন তবে আমি জানি না, তবে স্পেস সহ নামগুলি অবশ্যই মূর্তিযুক্ত:

==Example==
This example lacks text.
{{Expand section}}

যেখানে "সম্প্রসারিত বিভাগ" হ'ল একটি টেমপ্লেটের নাম (http://en.wikedia.org/wiki/Template:Expand_section)

আমার ধারণা এটি মানদণ্ডগুলি পূরণ করে - এমন একটি ভাষা যেখানে শনাক্তকারীদের নিয়মিতভাবে স্পেস থাকে। এটি কখনই অস্পষ্ট নয় (কারণ আমি মনে করি?) কারণ সনাক্তকারীরা সর্বদা প্রচুর বিরামচিহ্ন দ্বারা ঘিরে থাকে তাদের কাঁচা উইকি পাঠ্য থেকে আলাদা করতে।


2
যদিও উইকিটেক্সট অবশ্যই একটি আনুষ্ঠানিক ভাষা, আমি এটিকে প্রোগ্রামিং ভাষা বলব না (এটির লুপও নেই)।
এসভিচ

@ স্পিক: হাস্কেল, স্মলটালক, স্কিম, ক্লোজার, এরলং, ল্যাম্বডা ক্যালকুলাস, ট্যুরিং মেশিন, আইও, আইওক, সেপ,… না
জুর্গ ডব্লু মিট্টাগ

@ জার্গডব্লিউমিত্যাগ, তবে তাদের পুনরাবৃত্তি হয়েছে যা লুপগুলি প্রকাশের এক অন্যরকম উপায়। উইকাইটেক্সট এমনকি আছে না।
এসভিচ

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

1
আকর্ষণীয়, [[উইকিপিডিয়া: ট্রান্সক্লুশন]] থেকে: "মিডিয়াউইকি সফ্টওয়্যারটিতে এখন পর্যন্ত কোনও আসল লুপিং কার্যকারিতা তৈরি হয়নি ... তবে সেগুলি অনুকরণ করার জন্য কিছু কৌশল রয়েছে instance উদাহরণস্বরূপ, বারবার কল করে এমন একটি টেমপ্লেট বার বার কল করা যা বিভিন্ন টেমপ্লেটগুলি ডাবল লুপের নকল করতে পারে Temp টেমপ্লেটগুলি পুনঃনির্দেশের কারুকার্য্য ব্যবহারের মাধ্যমে নিজেকে ডেকে আনা (সাধারণত একক নজির ধরে মিডিয়াউইকি সফটওয়্যার দ্বারা নিষিদ্ধ), এম: টেমপ্লেট: লুপ 1 (ব্যাকলিংক, সম্পাদনা করুন) এছাড়াও দেখুন এম: সহায়তা: উইকিটেক্সটের পুনরাবৃত্ত রূপান্তর ""
স্টিভ বেনিট

9

ইনফর্ম 7 হ'ল প্রাকৃতিক ভাষা যেমন সিনট্যাক্স ব্যবহার করে ইন্টারেক্টিভ ফিকশন বিকাশের জন্য একটি সিস্টেম যা বহু-শব্দের শনাক্তকারীরা সাধারণ:

Mr Jones wears a top hat. The crate contains a croquet mallet. 

সীমাবদ্ধতা, অবশ্যই, হ'ল কোনও শনাক্তকারী কোনও কীওয়ার্ড ধারণ করতে পারে না যখন এটি অস্পষ্ট হবে।

একটি অনুরূপ শিরা ইন, মধ্যে আন্ডারস্কোর সঙ্গে শনাক্তকারী Agda ব্যবহৃত mixfix, সরলতম উদাহরণ যার সম্ভবত হতে পারে if_then_else_অপারেটর:

if_then_else_ : {A : Set} -> Bool -> A -> A -> A
if true  then x else y = x
if false then x else y = y

6

স্কালা ব্যাকটিক্স ব্যবহার করে নির্বিচারে সনাক্তকারীদের অনুমতি দেয়। এটির জন্য সাধারণ ব্যবহারটি অনুরোধ করা Thread.`yield`কারণ yieldস্কালায় একটি সংরক্ষিত শব্দ। এটি (আব) নামগুলিতে ফাঁকা স্থান থাকতে পারে, যদিও এটি আইডেম্যাটিক স্কাল কোড থেকে দূরে থাকবে:

val `the answer` = 42
println(`the answer`)

মুরগি, আপনি শনাক্তকারীগুলিতে এমনকি ট্যাব রাখতে পারেন:

scala> val `the\tanswer` = 42
the     answer: Int = 42

আমি মনে করি এটি শিক্ষিত প্রোগ্রামিং লোকের জন্য বোধগম্য হতে পারে । হতে পারে.


স্কালা +পদ্ধতি নামের মতো অক্ষরগুলিকে মঞ্জুরি দেয় । সুতরাং obj.a+=1, এটি এটি বিশদ করে যেমন a+=একটি পদ্ধতি ছিল। আবিষ্কারক মার্টিন ওডারস্কি তার পাঠ্যপুস্তকে ধরে নিয়েছেন যে প্রোগ্রামাররা সাধারণত ফাঁকা স্থান অন্তর্ভুক্ত করে, যাতে পার্সার অস্পষ্টতাগুলি কার্যত ব্যবহারিকভাবে খুব সমস্যাযুক্ত না হয়।
জেসভিন জোস

1
@ আইচনইয়ু: আসলে মিশ্র শনাক্তকারীগুলিতে, বর্ণমালা অংশ এবং অপারেটর অংশকে আন্ডারস্কোর দ্বারা পৃথক করা প্রয়োজন। obj.a+=1সমান obj.a += 1যা সমান obj.a.+=(1)obj.a_+=1আপনার বর্ণনার পদ্ধতিতে এটি কাজ করতে চাইলে আপনার প্রয়োজন হবে । (প্রকৃতপক্ষে, এটি একটি বিশ্লেষণ ত্রুটি দেবে, আপনাকে কল করতে হবে obj.a_+=(1)বা হয় obj a_+= 1))
জার্গ ডব্লু মিত্তাগ

এটি কোনও ট্যাব নয় ... এটি একটি স্পেস স্টেশন। এবং স্পেস স্টেশন দ্বারা, আমি একটি ট্যাব অব্যাহতি ক্রম বোঝায়।
থমাস এডিং

5

এফ # শনাক্তকারী নামগুলিতে সাদা স্থানের অনুমতি দেয় তবে সেগুলি অবশ্যই ডাবল ব্যাকটিক্স দিয়ে ঘিরে থাকতে হবে। এই প্রশ্নের উত্তর দেখুন: https://stackoverflow.com/questions/6639688/ using-keywords-as- পরিচয়বিদ-ইন-f


4

আপনি এটি শসা / ঘেরকিনের ক্ষেত্রে বিবেচনা করতে পারেন , যেখানে ফাংশনটির নামগুলি কার্যকরভাবে বাক্যগুলিতে বাক্যগুলির মধ্যে এম্বেড থাকা যুক্ত থাকে with

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


3

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

set "my name" "bob"
puts "hello, ${my name}"

ওটিও, গতিশীলভাবে ভেরিয়েবলগুলি তৈরি করার সময় এটি খুব কার্যকর, যেহেতু এ জাতীয় ভেরিয়েবলগুলি তৈরি করার সময়, কাউকে অবৈধ চরিত্রগুলি নিয়ে চিন্তা করতে হবে না



1

আপনি যদি ডিএসএলকে একটি স্বয়ংক্রিয় পরীক্ষার কোনও ভাষা বিবেচনা করেন, তবে রোবট ফ্রেমওয়ার্কটি কীওয়ার্ডের নামগুলিতে ফাঁক দেওয়ার অনুমতি দেয় এবং এটি অত্যন্ত মূর্তিযুক্ত। নিম্নলিখিত উদাহরণে "হ্যালো বলুন" একটি কীওয়ার্ডের নাম, "উদাহরণ পরীক্ষার কেস" একটি পরীক্ষার কেসের নাম এবং "$ {প্রথম নাম}" একটি পরিবর্তনীয়:

*** Keywords ***
| Say hello | [Arguments] | ${first name}
| | log | Hello, ${first name}

*** Test Cases ***
| Example test case
| | Say hello | world

1

4D ভাষা পদ্ধতি নাম এবং ভেরিয়েবলের মধ্যে সাদা স্থান দেয়। এটি সম্প্রদায়ের মধ্যে সাধারণত নষ্ট হয় তবে সমস্ত অন্তর্নির্মিত পদ্ধতি এবং ভেরিয়েবলগুলি প্রযোজ্য ক্ষেত্রে এগুলি ব্যবহার করে ( SET MENU ITEM PARAMETERউদাহরণস্বরূপ)


0

স্মার্টটাক কীওয়ার্ড পদ্ধতিগুলি বৈশিষ্ট্যযুক্ত যেমন যেমন a:b:c:যাবার সময় হোয়াইটস্পেস জড়িত। উদাহরণ: a: 100 b: 200 c: 300। এটি ভাষাতে একটি স্ট্যান্ডার্ড আইডিয়ম।


0

পাওয়ারশেল চলক নামগুলিতে ফাঁক দেওয়ার অনুমতি দেয়:

PS C:\> ${the var} = 100

PS C:\> ${the var}
100

0

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

var peoplesFavoriteThings = {
    "Bob Jones":"kittens",
    "Jane Doe":"chainsaws"
}

for(var name in peoplesFavoriteThings){
    console.log(name + ' likes ' + peoplesFavoriteThings[name] + '.\n');
}

এটি জেএসে নামানোর সময় তাত্ক্ষণিক-অবজেক্ট ফ্যাক্টরটি হারিয়ে না ফেলে ব্যবহারের সহজতার জন্য জেএসএনকে পুনর্গঠন করা সহজ করে তোলে।


মজার বিষয় এটি জাভাস্ক্রিপ্টের একমাত্র উল্লেখ। হ্যাঁ, পদ্ধতি এবং বৈশিষ্ট্যে স্ট্রিং থাকতে পারে: foo['my method']()এবংfoo['my property']
স্টিভ বেনেট

0

পাওয়ার ক্যোয়ারী স্বয়ংক্রিয়ভাবে উত্পন্ন কোডটি প্রচুর ব্যবহার করে। আমি অনুমান করেছি উত্পন্ন শনাক্তকারীদের অর্ধেকেরও বেশি সাদা স্থান ব্যবহার করবে:

let
    Source = Sql.Database(".", "Test"),
    dbo_pvt = Source{[Schema="dbo",Item="pvt"]}[Data],
    #"Filtered Rows" = Table.SelectRows(dbo_pvt, each [VendorID] <= 4),
    #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Emp1", "Emp2"}),
    #"Grouped Rows" = Table.Group(#"Removed Columns", {"Emp3", "Emp4"}, {{"Count", each List.Sum([Emp5]), type number}})
in
    #"Grouped Rows"

আপনি দেখতে পাচ্ছেন, অনেক ভাষায় মত শনাক্তকারীটি কী তা বোঝাতে অতিরিক্ত সিনট্যাক্স রয়েছে।

তবে যে জায়গাগুলিতে এটি দ্ব্যর্থহীন, সেখানে কোনও অতিরিক্ত সিনট্যাক্সের প্রয়োজন নেই:

let
    spaceRecord = [with space = 42, recursive record = @spaceRecord],
    drilldown = spaceRecord[recursive record][recursive record][recursive record][with space]
in
    drilldown   // 42

-1

যদি আপনি এটিকে আসল ভাষা হিসাবে গণনা করেন তবে জেএমপি স্ক্রিপ্টিং ভাষা ( http://www.jmp.com/support/downloads/pdf/jmp_scriptting_guide.pdf )। এটি শনাক্তকারীদের শ্বেত স্থান রাখতে (তাদের আরও "পাঠযোগ্য" করতে) এবং আরও কম-বেশি এমন উত্সাহ দেয়।


-1

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


-2

লেখক, যার স্ক্রিপ্টিং ভাষা অ-অবজেক্ট-ভিত্তিক পাসকালের উপর ভিত্তি করে ছিল, পরিবর্তনশীল নামগুলিতে স্থানের অনুমতি দেয় যদিও সময়ের সাথে সাথে লোকেরা সেগুলি ব্যবহার করে সমস্যাগুলি আবিষ্কার করে এবং এ থেকে সরে যায় http://books.google.com/books?id= bHC88YignAkC & pg = PA428 & lpg = PA428


-4

সম্পাদনা করুন: এই উত্তরটি সঠিক নয়, মন্তব্যগুলি দেখুন।

যদি আমি আপনার প্রশ্নটি সঠিকভাবে বুঝতে পারি তবে একটি সংকলক শনাক্তকারী নামতে স্থান (গুলি) অনুমতি দিতে পারে না কারণ এটি অনুলিপি নামগুলির কারণ হতে পারে (যদি না একটি সীমানার ব্যবহার না করা হয়)। উদাহরণ স্বরূপ:

int আমার = 0; বুল আমার গণনা = মিথ্যা; int গণনা = 0; যদি (আমার গণনা) ...

'আমার গণনা' শব্দটি বিভ্রান্ত করছে এটি হয় 'আমার গণনা' নামক ভেরিয়েবলটিকে বোঝাতে পারে অথবা সম্ভবত বিকাশকারী আমার এবং কাউন্টের মধ্যে> যেমন কোনও সম্পর্ক অপারেটর লিখতে ভুলে গিয়েছিলেন।

সিওবিওএল বিভাগের নাম এবং বিভাগের নামগুলিকে স্থান দ্বারা পৃথক করার অনুমতি দিয়েছে কিন্তু সেগুলি আপনার প্রশ্নের মতো শনাক্তকারী এবং ভেরিয়েবল নয়।


4
ঠিক আছে, এটি সংকলক নয়, এটি ভাষার সংজ্ঞা। বেশিরভাগ ভাষাগুলি শনাক্তকারীগুলিতে শ্বেত স্পেসের অনুমতি দিতে পারে না কারণ তারা দ্ব্যর্থতা তৈরি করে।
স্টিভ বনেট

2
আপনার যুক্তি আমার কাছে একধরনের ইফফিস মনে হচ্ছে। আপনার উদাহরণে my Countভেরিয়েবলের নাম হওয়ার একমাত্র বিকল্প হ'ল প্রোগ্রামারটি টাইপো তৈরি করে। এটা অস্পষ্টতা নয়। অভিব্যক্তি পার্স করার অন্য কোনও বৈধ উপায় থাকলে দ্ব্যর্থতা হবে । একই যুক্তি দ্বারা আপনি বলতে পারেন যে অনুমতি দেওয়া a(b+c)অস্পষ্ট কারণ সম্ভবত প্রোগ্রামার একটি ভুলে গিয়েছিল >এবং সত্যই বোঝানো হয়েছিল a > (b + c)
sepp2k

1
তবে (এমন একটি ভাষায় যা ভেরিয়েবল নামের ক্ষেত্রে শূন্যস্থান দেয়) এর মধ্যেও কোনও অস্পষ্টতা নেই if (my count)। আপনি বলছেন না যে বিবৃতিটি বিশ্লেষণের আলাদা, বৈধ উপায় আছে (যার অর্থ এটি অস্পষ্ট)। আপনি বলছেন আপনি যদি চরিত্রটি যুক্ত করেন তবে আপনি <একটি ভিন্ন, বৈধ পার্স দিয়ে শেষ করবেন। আর আমি বলছি, আপনি যদি চরিত্র যোগ <করার a(b+c)এছাড়াও আপনি একটি ভিন্ন, বৈধ পার্স দিয়ে শেষ।
sepp2k

1
পছন্দ করুন যে কোনও ভাষা যা ভেরিয়েবল নামের ক্ষেত্রে শূন্যস্থানগুলিকে মঞ্জুরি দেয় তা হয় তাদের নাম টাইপ করে তা অস্বীকার করতে হবে বা প্রকারের ঘোষণার জন্য আলাদা সিনট্যাক্স ব্যবহার করতে হবে (যেমন বলতে হবে var name of the variable : type of the variable) - বা টাইপের ঘোষণাপত্রের মোটেও তা নয়।
sepp2k

1
@ sepp2k, এখন আমি আপনার বক্তব্য পেয়েছি এটি পরিষ্কার করার জন্য সময় দেওয়ার জন্য ধন্যবাদ। আমার উত্তরটি ভুল।
NoChance
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.