ভাষার শোকেস


507

নোট

  • এই থ্রেডটি কেবল উন্মুক্ত এবং আনলক হয়েছে কারণ সম্প্রদায়টি ব্যতিক্রম করার সিদ্ধান্ত নিয়েছে । দয়া করে না প্রমাণ যে আপনার অনুরূপ প্রশ্ন এখানে অনুরোধ করতে পারেন হিসাবে এই প্রশ্ন ব্যবহার করুন। দয়া করে অতিরিক্ত প্রশ্ন তৈরি করবেন না

  • এটি আর , বা ভোটের তালিকায় স্নিপেটের দৈর্ঘ্যও সীমাবদ্ধ নয়। আপনি যদি এই থ্রেডটি আগে থেকেই জানেন তবে দয়া করে নিশ্চিত হন যে আপনি নিজেকে পরিবর্তনের সাথে পরিচিত করছেন।

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

এটি কীভাবে কাজ করে

  • সমস্ত উত্তরের সাথে পোস্টের শীর্ষে প্রোগ্রামিং ভাষার নাম অন্তর্ভুক্ত করা উচিত, এটি দ্বারা উপসর্গীকৃত #

  • উত্তরে একটি (এবং শুধুমাত্র একটি) ফ্যাকটোইড থাকতে পারে, অর্থাত্ ভাষা বর্ণিত কোড ব্যতীত কয়েকটি বাক্য।

  • ফ্যাক্টয়েড বাদে, উত্তরগুলিতে কোডের স্নিপেটগুলি থাকা উচিত, যা প্রোগ্রাম বা ফাংশন (তবে হতে হবে না) হতে পারে।

  • স্নিপেটগুলি সম্পর্কিত হতে হবে না। আসলে, স্নিপেটগুলি যেগুলি খুব সম্পর্কিত red

  • যেহেতু এটি কোনও প্রতিযোগিতা নয়, সমস্ত প্রোগ্রামিং ভাষা যখনই তৈরি করা হয়েছিল, স্বাগতম welcome

  • মুষ্টিমেয় কোড স্নিপেটের বেশি উত্তর রয়েছে এমন উত্তরগুলিতে স্ট্যাক স্নিপেট ব্যবহার করা উচিত ফ্যাকটোড এবং স্নিপেটগুলির একটি ছাড়া সমস্ত কিছু ভেঙে ফেলার জন্য।

  • যখনই সম্ভব, প্রতি প্রোগ্রামিং ভাষাতে কেবল একটি উত্তর থাকতে হবে। এটি একটি সম্প্রদায়ের উইকি, সুতরাং আপনি নিজেরাই তৈরি না করলেও কোনও উত্তরের জন্য স্নিপেটগুলি নির্দ্বিধায় যোগ করুন। সংক্ষিপ্ত পোস্টগুলির জন্য একটি স্ট্যাক স্নিপেট রয়েছে , এটি 30,000 অক্ষরের সীমাটির প্রভাব হ্রাস করতে হবে।

এই গাইডলাইনগুলির পূর্বে থাকা উত্তরগুলি সম্পাদনা করা উচিত। প্রয়োজন হিসাবে তাদের আপডেট করার জন্য দয়া করে।

বর্তমান উত্তরগুলি বর্ণের অনুসারে ভাষার নাম অনুসারে বাছাই করা হয়েছে

$.ajax({type:"GET",url:"https://api.stackexchange.com/2.2/questions/44680/answers?site=codegolf&filter=withbody",success:function(data){for(var i=0;i<data.items.length;i++){var temp=document.createElement('p');temp.innerHTML = data.items[i].body.split("\n")[0];$('#list').append('<li><a href="/a/' + data.items[i].answer_id + '">' + temp.innerText || temp.textContent + '</a>');}}})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><base href="http://codegolf.stackexchange.com"><ul id="list"></ul>

উত্তর:


414

ম্যাথামেটিকাল

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

তালিকা বেশ দীর্ঘ হয়। আমি কম আকর্ষণীয় স্নিপেটগুলি সরিয়ে ফেলতে শুরু করেছি এবং এখনই স্নিপেটগুলি এড়ানো শুরু করব। ৪১ অবধি স্নিপেটের সম্পূর্ণ তালিকার জন্য পুনর্বিবেচনার ইতিহাসটি দেখুন some কিছু বাস্তব রত্নের জন্য, স্নিপেটগুলি দেখুন 81 , 64 , 44 , 23 , 19 , 12 এবং 8

দৈর্ঘ্য 143 এবং 144 স্নিপেট

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

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

এটি বেশ অপঠনযোগ্য, কারণ আমাকে এটিকে অনেকটা গল্ফ করতে হয়েছিল:

d@t@t;NDSolve[{#''@t==-#4#2''[t]Cos@d-##3#2'@t^2Sin@d-Sin@#@t&@@@{{θ,φ,1,.5},{φ,θ,-1,1}},θ@0==2,φ@0==1,θ'@t==φ'@t==0/.t->0},{θ,φ},{t,0,60}]

ঝরঝরে কী হ'ল ম্যাথমেটিকা ​​তাত্ক্ষণিক সমাধানগুলির মতো দেখতে প্রায় একটি ক্ষুদ্র চক্রান্ত প্রদর্শন করে:

এখানে চিত্র বর্ণনা লিখুন

ঠিক আছে, তবে কিছুটা খোঁড়া। আমরা জানতে চাই যে পেন্ডুলার গতি আসলে কেমন দেখাচ্ছে। সুতরাং এখানে একটি 144-চরিত্রের স্নিপেট রয়েছে, যা নিম্ন দুলের ট্রাজেক্টোরি বের করার সময় দুলটি অ্যানিমেট করে:

Graphics@{Line@{{0,0},p=θ~(h={Sin@#@#2,-Cos@#@#2}&)~t,p+φ~h~t},White,{0,0}~Circle~2.2}~Show~ParametricPlot[θ~h~u+φ~h~u,{u,0,t}]~Animate~{t,0,60}

ফলস্বরূপ অ্যানিমেশনটি এর মতো দেখাচ্ছে:

এখানে চিত্র বর্ণনা লিখুন

আমি সামান্য ঠকাই ছিল: যদি আপনি তার পরেও প্লটে বিভক্ত t = 30, ParametricPlotডিফল্টরূপে খুব অল্প চক্রান্ত পয়েন্ট ব্যবহার করে এবং লাইন বেশ খাঁজকাটা হয়ে যায়। তবে বেশিরভাগ আকর্ষণীয় গতিশীলতা সেই সময়ের পরে ঘটে থাকে, তাই আমি PlotPoints -> 200দ্বিতীয় অ্যানিমেশনটিকে মসৃণ দেখানোর জন্য বিকল্পটি ব্যবহার করেছি । এটি উল্লেখযোগ্যভাবে আলাদা কিছু নয় এবং প্রথমার্ধটি যাইহোক অবিচ্ছিন্ন দেখাবে।

আমি মনে করি এটি আমার শেষ স্নিপেট হবে, যদি না আমি সত্যিই মন খারাপের কিছু নিয়ে আসি। আশা করি আপনি এটি উপভোগ করেছেন!

দৈর্ঘ্যের 100 স্নিপেট

GeoGraphics[{GeoStyling[Opacity[0.5]], NightHemisphere[]}, GeoBackground -> GeoStyling["ReliefMap"]]

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

এখানে চিত্র বর্ণনা লিখুন

দৈর্ঘ্যের 81 স্নিপেট

CellularAutomaton[{{0,2,3,If[0<Count[#,1,2]<3,1,3]}[[#[[2,2]]+1]]&,{},{1,1}},i,n]

আমি প্রতিশ্রুতি যে এটি সর্বশেষ সেলুলার অটোমেটন। তবে ঠিক ৮১ টি অক্ষরে ওয়্যারওয়ার্ল্ড রয়েছে। এবার আমি কোনও সংখ্যায় নিয়মটি এনকোড করিনি, ক) কারণ আমি মনে করি এটি হাস্যকরভাবে বিশাল হবে (আমি এটি খুঁজে বের করতে বিরক্ত করিনি) এবং খ) আপনাকে আরও একটি ব্যবহার দেখানোর জন্য CellularAutomaton। এবার, নিয়মটি খাঁটি ফাংশন হিসাবে কেবল সুনির্দিষ্টভাবে নির্দিষ্ট করা হয়েছে, যা ঘরের আশেপাশে কোষগুলি গ্রহণ করে এবং ঘরের নতুন মানটি প্রদান করে। এটি প্রায় 2 টিরও বেশি রঙ / রাজ্য সহ সেলুলার অটোমেটার জন্য আরও অনেক সম্ভাব্য পদ্ধতির।

যাইহোক, আমি উইকিপিডিয়া থেকে উদাহরণ স্থাপন করেছি i(দুটি ঘড়ি জেনারেল সংকেত, এবং একটি এক্সওআর গেট) এবং এটি প্রায় 50 টি ধাপের জন্য চালানো যাক:

এখানে চিত্র বর্ণনা লিখুন

আপনি যদি আগ্রহী হন তবে আসল প্লট করা এবং অ্যানিমেশনটি স্নিপেট 77 হতে পারে:

ListAnimate[ArrayPlot[#,ColorRules->{0->Black,1->Blue,2->Red,3->Yellow}]&/@w]

দৈর্ঘ্যের 69 স্নিপেট

DSolve[r^2*R''[r]+2r*R'[r]-R[r]==0&&(R[r]==1&&R'[r]==2/.r->1),R[r],r]

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

{{R[r] -> 1/2 r^(-(1/2) - Sqrt[5]/2) (1 - Sqrt[5] + r^Sqrt[5] + Sqrt[5] r^Sqrt[5])}}

যা সহজেই আরও গণনা বা প্লট করার জন্য ব্যবহার করা যেতে পারে।

দৈর্ঘ্যের 64 স্নিপেট

CellularAutomaton[{224,{2,{{2,2,2},{2,1,2},{2,2,2}}},{1,1}},i,n]

আমি তোমাকে আরও CellularAutomatonযাদু করার প্রতিশ্রুতি দিয়েছি ! এই স্নিপেটটি কনভেন্সের গেম অফ লাইফকে প্রাথমিক পদক্ষেপের iজন্য প্রাথমিক শর্তের সাথে গণনা করে nএবং আপনাকে সমস্ত মধ্যবর্তী সময়সীমার ফলাফল দেয়।

পরামিতিগুলি সম্পর্কে কয়েকটি শব্দ: 2হ'ল সেল রাজ্যের সংখ্যা। {{2,2,2},{2,1,2},{2,2,2}}3x3 পাড়ায় 9 টি কক্ষের জন্য ওজন দেয়। এটি নিশ্চিত করে যে সেলটি 8 টি প্রতিবেশীর যোগফল থেকে পৃথক। {1,1}বলে যে সিএ বিধি উভয় দিকের 1 ধাপ দূরে কোষের উপর নির্ভর করে। শেষ অবধি, 224একক সংখ্যায় এনকোড করা আসল আপডেটের নিয়ম। এই সংখ্যাটি নির্ধারণ করা কিছুটা জটিল হতে পারে তবে ডকুমেন্টেশনে মোটামুটি দরকারী টিউটোরিয়াল রয়েছে । আরও জটিল অটোমেটার জন্য, একটি একক সংখ্যা এটি কাটবে না (কারণ সংখ্যাটি বিশাল হবে)। আমরা আগামীকাল সেখানে পৌঁছে যাব! ;)

যাইহোক, আমি যদি এলোমেলো গ্রিডটি i200 এবং এর মধ্যে 200 এ nখাওয়াই এবং ফলটি অ্যানিমেটেডের মাধ্যমে প্রেরণ করি তবে ArrayPlotআমরা দেখতে পাচ্ছি যে এটি আসলে কাজ করছে:

এখানে চিত্র বর্ণনা লিখুন

দৈর্ঘ্যের 59 স্নিপেট

SphericalPlot3D[Re[Sin[θ]Cos[θ]Exp[2I*φ]],{θ,0,π},{φ,0,2π}]

স্নিপেট 26 থেকে পোলার প্লটটি মনে আছে? আমরা 3D তে একই জিনিস করতে পারি! (প্রকৃতপক্ষে, দুটি ফাংশন রয়েছে: RevolutionPlot3Dনলাকার পোলারগুলির SphericalPlot3Dজন্য এবং গোলাকৃতির পোলারগুলির জন্য Graphics3Dthree ) ত্রি-মাত্রিক প্লটগুলি যেমন ম্যাথমেটেমায় স্বয়ংক্রিয়ভাবে ঘোরানো যায়, তাই আপনাকে কোনও ভাল ক্যামেরার অ্যাংফ্রন্টের বিষয়ে চিন্তা করতে হবে না। উপরের প্লটগুলি গোলাকার সুরেলা জাতীয় কিছু (যদিও তা যথেষ্ট নয়) এর মতো দেখায় এবং দেখে মনে হয়:

এখানে চিত্র বর্ণনা লিখুন

দৈর্ঘ্যের 52 স্নিপেট

Manipulate[Plot[x^2a+x*b,{x,-3,3}],{a,.1,3},{b,0,3}]

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

এখানে চিত্র বর্ণনা লিখুন

দৈর্ঘ্যের 48 স্নিপেট

Import["http://www.google.com/doodles","Images"]

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

দৈর্ঘ্যের 45 স্নিপেট

EdgeDetect@ExampleData@{"TestImage","Splash"}

কিছু চিত্র প্রক্রিয়াকরণের জন্য সময়। ম্যাথামেটিকায় চিত্রের (লেনার মতো), টেক্সচার, 3 ডি মডেল এবং অডিও স্নিপেটস সহ পুরো উদাহরণের ডেটা আসে। প্রথমত, আমরা এর মধ্যে একটি লোড করি:

এখানে চিত্র বর্ণনা লিখুন

প্রান্তগুলি সনাক্ত করতে চান? এটি একটি একক ফাংশন কল:

এখানে চিত্র বর্ণনা লিখুন

দৈর্ঘ্যের 44 স্নিপেট

ArrayPlot@CellularAutomaton[110,{{1},0},100]

পরিশেষে, আমি ব্যবহার করতে CellularAutomatonএবং ফলাফল রেন্ডার করার জন্য পর্যাপ্ত অক্ষর পেয়েছি । :) যতদূর আমি সচেতন, CellularAutomatonসিএ সম্পর্কিত ম্যাথমেটিকায় একমাত্র কাজ। তবে স্টিফেন ওল্ফ্রাম সেলুলার অটোম্যাটার ক্ষেত্রে নিজেকে এক নম্বর লোক হিসাবে বিবেচনা করবেন বলে মনে হয়, সুতরাং এই ফাংশনটি অবিশ্বাস্যভাবে শক্তিশালী। উপরের চিত্রগুলি তার সহজ ব্যবহারটি প্রদর্শন করে। এটি 100 টি পদক্ষেপের জন্য 1 ডি সেলুলার অটোমেটনকে অনুকরণ করে - এবং এটি প্রকৃতপক্ষে সেই প্রতিটি পদক্ষেপে অটোমেটনের অবস্থা ফিরিয়ে আনবে, ফলে ফলাফলটি দ্বিমাত্রিক। নিয়মটি হ'ল প্রথম প্যারামিটার, যা তালিকার মাধ্যমে বিশদভাবে নির্দিষ্ট করা যেতে পারে, বা কেবল একটি সংখ্যায় এনকোড করা যেতে পারে। এই উদাহরণস্বরূপ, আমি বরং বিখ্যাত, টিউরিং সম্পূর্ণ, বিধি 110 বেছে নিয়েছি । {{1},0}প্রাথমিক অবস্থাটি সংজ্ঞায়িত করে: একক1শূন্য একটি পটভূমি সামনে। আমি আরও কিছু CellularAutomatonঅক্ষর উপলভ্য হলে ভবিষ্যতে আমি আরও কিছু বৈশিষ্ট্যগুলি প্রদর্শন করব : এটি বৃহত্তর পাড়া ব্যবহার করে এবং দুটিরও বেশি রাজ্য সহ উচ্চতর মাত্রায় সিএ অনুকরণ করতে পারে।

ArrayPlotআর একটি দুর্দান্ত প্লটিং ইউটিলিটি যা কেবলমাত্র 2D তালিকাটিকে শক্ত রঙের গ্রিড হিসাবে তাদের মানকে নির্দেশ করে প্লট করে। সবচেয়ে সহজ ক্ষেত্রে 0সাদা এবং 1কালো রঙের জন্য ম্যাপেন্ড হয় । স্নিপেটের ফলাফল:

এখানে চিত্র বর্ণনা লিখুন

দৈর্ঘ্যের 43 স্নিপেট

HighlightGraph[graph,FindVertexCover@graph]

আমি গ্রাফগুলি উল্লেখ করার পরে এটি হয়ে গেছে। গাণিতিকিকাতে দুর্দান্ত ভিজ্যুয়ালাইজেশন সরঞ্জাম সহ প্রচুর প্রচলিত গ্রাফ তাত্ত্বিক সমস্যা রয়েছে। উপরের, graphপ্রদত্তর জন্য, গ্রাফের একটি ন্যূনতম প্রান্তিক কভারটি খুঁজে পাবে এবং তারপরে সেই উল্লম্বগুলি হাইলাইট করা সহ গ্রাফটি রেন্ডার করুন। যেমন যদি graphহয় PetersenGraph[7,2]স্নিপেট 18 থেকে ফিরে আমরা পাই:

এখানে চিত্র বর্ণনা লিখুন

দৈর্ঘ্যের 42 স্নিপেট

Animate[Plot[Sin[t-x],{x,0,10}], {t,0,10}]

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

এখানে চিত্র বর্ণনা লিখুন

দৈর্ঘ্যের 40 স্নিপেট

SortBy[PlanetData[#, "EscapeVelocity"]&]

SortByআপনি যা প্রত্যাশা করেন তা করে: এটি প্রতিটি তালিকার উপাদানটিতে একটি প্রদত্ত ফাংশন ম্যাপিংয়ের দ্বারা প্রাপ্ত মানের উপর ভিত্তি করে একটি তালিকা সাজায়। তবে অপেক্ষা করুন, উপরের কলটিতে কোনও তালিকা নেই। ম্যাথমেটিকা ​​10 সাল থেকে কার্যাঙ্কিং বা কিছু ফাংশনের আংশিক প্রয়োগের জন্য সমর্থন রয়েছে । এটি আরও পিউরিস্ট ফাংশনাল ভাষাগুলির মতো কোনও ভাষা বৈশিষ্ট্য নয়, তবে পুরো ক্রিয়াগুলির জন্য এটি নিজেই প্রয়োগ করা হয় যেখানে এটি প্রায়শই কার্যকর। এর অর্থ হ'ল উপরের স্নিপেট একটি নতুন ফাংশন প্রদান করে, যা কেবল একটি তালিকা নেয় এবং তারপরে প্রদত্ত ফাংশন অনুসারে বাছাই করে। এই বাছাইয়ের ক্রম এমন কিছু হয় যা আপনি আপনার কোড জুড়ে প্রায়শই ব্যবহার করবেন This

এবং হ্যাঁ, আরও একটি সুন্দর *Dataফাংশন রয়েছে - উপরের গ্রহগুলির পালানোর গতি অনুসারে গ্রহের নামগুলি বাছাই করবে ।

দৈর্ঘ্যের 39 স্নিপেট

f[1]=1
f[2]=1
f[n_]:=f[n]=f[n-1]+f[n-2]

আমি প্রতিশ্রুতি দিয়েছিলাম যে ফিবোনাচি ফাংশনটিকে আরও দক্ষ করে তোলা হবে। এই স্নিপেটটি দেখায় যে গাণিতিকায় কতটা তুচ্ছ স্মৃতি রয়েছে। নোট করুন যে সমস্ত পরিবর্তিত f[n]=হয়েছে তা তৃতীয় লাইনে অতিরিক্ত । সুতরাং যখন fএকটি নতুন মান (বলুন f[3]) জন্য ডাকা f[3]=f[3-1]+f[3-2]হবে , তখন মূল্যায়ন করা হবে। এই গণনাগুলি f[2]+f[1], তারপরে এটি নির্ধারিত করে f[3](সাথে =, সাথে নয় :=!), এবং শেষ পর্যন্ত আমাদের প্রাথমিক কলের মান দেয়। সুতরাং এই ফাংশনটি কল করা এই মানটির জন্য একটি নতুন সংজ্ঞা যুক্ত করে, এটি সাধারণ নিয়মের চেয়ে স্পষ্টতই বেশি নির্দিষ্ট - এবং তাই fসেই মানটির সাথে ভবিষ্যতের সমস্ত কলগুলির জন্য ব্যবহৃত হবে ।

মনে রাখবেন যে অন্যান্য ফিবোনাচি ফাংশন 30 টি মানের জন্য 4 সেকেন্ড সময় নিয়েছিল? এটি 300,000 মানের জন্য 3 সেকেন্ডের প্রয়োজন।

দৈর্ঘ্য 37 স্নিপেট

l//.{a___,x_,b___,x_,c___}:>{a,x,b,c}

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

{a___,x_,b___,x_,c___}:>{a,x,b,c}একটি নিয়ম। x_একটি একক আন্ডারস্কোর সহ একটি প্যাটার্ন যা একক স্বেচ্ছাসেবী মানকে বোঝায় (যা নিজেই একটি তালিকা বা অনুরূপ হতে পারে)। a___এটি একটি সিকোয়েন্স প্যাটার্ন (স্নিপেট 15 দেখুন), যা 0 বা ততোধিক মানের একটি ক্রমকে বোঝায়। নোট করুন যে আমি x_দুবার ব্যবহার করছি , যার অর্থ তালিকার সেই দুটি অংশ একই মান হতে হবে। তাই এই প্যাটার্ন কোন তালিকা যা একটি মান দুইবার রয়েছে মিলে যায়, যে উপাদান আহ্বান xএবং যারা দুটি উপাদান প্রায় তিন সিকোয়েন্স আহ্বান a, bএবং c। এটি দ্বারা প্রতিস্থাপন করা হয় {a,x,b,c}- এটি দ্বিতীয়টি xবাদ পড়েছে।

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

দৈর্ঘ্য 36 স্নিপেট

f[1]=1
f[2]=1
f[n_]:=f[n-1] + f[n-2]

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

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

সুতরাং উপরেরটি অবশ্যই অবশ্যই একটি ফিবোনাচি ফাংশন। এবং এটি একটি খুব অদক্ষ এক। প্রথম 30 টি সংখ্যা গণনা করতে আমার মেশিনে 4 সেকেন্ড সময় লাগে। আমরা শীঘ্রই দেখতে পাব কীভাবে আমরা পুনরাবৃত্ত সংজ্ঞা থেকে মুক্তি না পেয়ে কীভাবে পারফরম্যান্সকে উন্নত করতে পারি।

দৈর্ঘ্যের 35 স্নিপেট

StreamPlot[{x^2,y},{x,0,3},{y,0,3}]

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

এখানে চিত্র বর্ণনা লিখুন

দৈর্ঘ্যের 34 স্নিপেট

Solve[a*x^4+b*x^3+c*x^2+d*x==0, x]

গাণিতিক সমীকরণগুলি (বা সমীকরণের সিস্টেমগুলিও সমাধান করতে পারে তবে আমরা এখনই অনেকগুলি অক্ষর পেয়েছি)। ফলাফলটি যথারীতি প্রতীকী হবে।

{
  {x -> 0}, 
  {x -> -(b/(3 a)) - (2^(1/3) (-b^2 + 3 a c))/(3 a (-2 b^3 + 9 a b c - 27 a^2 d + Sqrt[4 (-b^2 + 3 a c)^3 + (-2 b^3 + 9 a b c - 27 a^2 d)^2])^(1/3)) + (-2 b^3 + 9 a b c - 27 a^2 d + Sqrt[4 (-b^2 + 3 a c)^3 + (-2 b^3 + 9 a b c - 27 a^2 d)^2])^(1/3)/(3 2^(1/3) a)}, 
  {x -> -(b/(3 a)) + ((1 + I Sqrt[3]) (-b^2 + 3 a c))/(3 2^(2/3) a (-2 b^3 + 9 a b c - 27 a^2 d + Sqrt[4 (-b^2 + 3 a c)^3 + (-2 b^3 + 9 a b c - 27 a^2 d)^2])^(1/3)) - ((1 - I Sqrt[3]) (-2 b^3 + 9 a b c - 27 a^2 d + Sqrt[4 (-b^2 + 3 a c)^3 + (-2 b^3 + 9 a b c - 27 a^2 d)^2])^(1/3))/(6 2^(1/3) a)}, 
  {x -> -(b/(3 a)) + ((1 - I Sqrt[3]) (-b^2 + 3 a c))/(3 2^(2/3) a (-2 b^3 + 9 a b c - 27 a^2 d + Sqrt[4 (-b^2 + 3 a c)^3 + (-2 b^3 + 9 a b c - 27 a^2 d)^2])^(1/3)) - ((1 + I Sqrt[3]) (-2 b^3 + 9 a b c - 27 a^2 d + Sqrt[4 (-b^2 + 3 a c)^3 + (-2 b^3 + 9 a b c - 27 a^2 d)^2])^(1/3))/( 6 2^(1/3) a)}
}

দ্রষ্টব্য যে সমাধানগুলি নিয়ম হিসাবে দেওয়া হয়েছে , যা আমি সম্ভবত ভবিষ্যতের কিছু স্নিপেটে আরও বিশদভাবে দেখাব।

দৈর্ঘ্যের 33 স্নিপেট

Dynamic@EdgeDetect@CurrentImage[]

এই ধারণার জন্য বেনওয়াফলকে ধন্যবাদ। CurrentImage[]আপনার ওয়েবক্যামের বর্তমান চিত্রটি লোড করে। EdgeDetectকোনও চিত্রকে একটি কালো-সাদা চিত্রে পরিণত করে যেখানে প্রান্তগুলি সাদা এবং বাকী অংশগুলি কালো (উদাহরণের জন্য স্নিপেট 45 দেখুন)। আসল মজা নিয়ে আসেDynamic যা প্রকাশটি আপডেট করে। সুতরাং এর ফলাফলটি আসলে আপনার ওয়েবক্যাম থেকে চিত্রগুলি প্রবাহিত করবে এবং সেগুলিতে সরাসরি প্রান্ত সনাক্তকরণ করবে।

দৈর্ঘ্যের 32 স্নিপেট

NumberLinePlot[x^2<2^x,{x,-2,5}]

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

এখানে চিত্র বর্ণনা লিখুন

তীরটি ইঙ্গিত করে যে অঞ্চল অনন্ত অব্যাহত রয়েছে। সাদা চেনাশোনাগুলি নির্দেশ করে যে সেগুলি খোলা অন্তরগুলি (শেষ পয়েন্টগুলি অন্তরটির অংশ নয়)। বন্ধ প্রান্তের জন্য, চেনাশোনাগুলি পূরণ করা হবে।

দৈর্ঘ্যের 28 স্নিপেট

Graphics3D@{Sphere[],Cone[]}

কিছু 3 ডি গ্রাফিক্স জন্য সময়। উপরেরটি একটি সুপার-চাপানো গোলক এবং শঙ্কুটিকে ডিফল্ট প্যারামিটারগুলির সাথে রেন্ডার করে, যা স্ফটিক বলের মতো দেখায়:

এখানে চিত্র বর্ণনা লিখুন

গাণিতিকায় আপনি এটিকে ঘোরানোর জন্য আসলে এই ছোট্ট উইজেটটি ক্লিক করে টেনে আনতে পারেন।

দৈর্ঘ্যের 27 স্নিপেট

CountryData["ITA", "Shape"]

আরও *Data! CountryDataবেশ পাগল। একটি দেশের আকার পাওয়া এমনকি আইসবার্গের মূল অংশও নয়। দেশ সম্পর্কে অনেক তথ্য রয়েছে, আপনি সম্ভবত এই ফাংশনটি সম্পর্কে একটি সম্পূর্ণ বই লিখতে পারেন। যেমন ... আছে FemaleLiteracyFraction। সময় মতো বিভিন্ন পয়েন্টের জন্য আপনি সেই তথ্যটিও জিজ্ঞাসা করতে পারেন। একটি সম্পূর্ণ তালিকার জন্য, রেফারেন্সটি দেখুন।

এখানে চিত্র বর্ণনা লিখুন

দৈর্ঘ্যের 26 স্নিপেট

PolarPlot[Sin[5θ],{θ,0,π}]

আরও আকর্ষণীয় প্লটের জন্য সময়। PolarPlotকেবলমাত্র মেরু স্থানাঙ্কের একটি প্লট। প্রদত্ত x এর জন্য y নির্দিষ্ট করার পরিবর্তে, আপনি প্রদত্ত কোণের জন্য ব্যাসার্ধকে নির্দিষ্ট করে θ:

এখানে চিত্র বর্ণনা লিখুন

দৈর্ঘ্যের 25 স্নিপেট

{{1,5},{2,3},{7,4}}.{8,9}

পরিশেষে আমরা কিছু ভেক্টর গণিতের জন্য পর্যাপ্ত অক্ষর পেয়েছি। উপরেরটি 2x3 ম্যাট্রিক্স এবং সারি 2-ভেক্টরের ম্যাট্রিক্সের গুণকে গণনা করে:

{53, 43, 92}

দৈর্ঘ্যের 23 স্নিপেট

Rotate[Rectangle, Pi/2]

হেহ। হে হে। আপনি মনে করেন আপনি জানেন যে এটি কি করে। কিন্তু আপনি না। Rectangleনিজেই কেবল একটি নামকৃত ফাংশন। একটি আয়তক্ষেত্র উপস্থাপন করে কোনও বস্তু পেতে আসলে আপনাকে কিছু পরামিতি দিয়ে সেই ফাংশনটি কল করতে হবে। আপনি যখন ঘোরানোর চেষ্টা করবেন তখন আপনি কী মনে করেন Rectangle? এই:

এখানে চিত্র বর্ণনা লিখুন

দৈর্ঘ্যের 22 স্নিপেট

30~ElementData~"Color"

বিল্ট-ইন *Dataফাংশনগুলির আরেকটি । হ্যাঁ, রাসায়নিক উপাদানগুলির জন্য, আপনি কেবল তাদের পারমাণবিক সংখ্যা, গলনাঙ্ক এবং নামের মতো জিনিসগুলি পান না ... আপনি প্রকৃতপক্ষে ঘরের তাপমাত্রায় তাদের রঙ পেতে পারেন। উপরেরটি দস্তার রঙ দেয়:

SlateGray

দৈর্ঘ্যের 21 স্নিপেট

Integrate[E^(-x^2),x]

কিছুক্ষণ আগে আমাদের পার্থক্য ছিল। সংহত করার সময়। গাণিতিক নির্দিষ্ট এবং অনির্দিষ্ট উভয় ইন্টিগ্রাল পরিচালনা করতে পারে। বিশেষত, Integrateআপনাকে একটি সঠিক সমাধান দেবে এবং এটি প্রচুর স্ট্যান্ডার্ড ইন্টিগ্রাল এবং সংহতকরণ কৌশলগুলির সাথে ডিল করতে পারে (সংখ্যার ফলাফলের জন্য, আছে NIntegrate)। যদি আপনি নিজের ক্যালকুলাসটি জানেন, তবে আপনি লক্ষ্য করেছেন যে উপরের গাউসিয়ান ইন্টিগ্রালের আসলে একটি বদ্ধ ফর্ম অনির্দিষ্ট অবিচ্ছেদ্য নেই ... যদি না আপনি ত্রুটি ফাংশনটি বন্ধ ফর্মটি বিবেচনা করেন তবে তা that গণিত ফেরত:

1/2 Sqrt[π] Erf[x]

দৈর্ঘ্যের 20 স্নিপেট

"Sun"~StarData~"Age"

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

হ্যাঁ, এবং আমি কী উল্লেখ করেছি যে ম্যাথমেটিকা ​​(9 সাল থেকে) ইউনিটগুলির সাথে পরিমাণকে সমর্থন করে? (আরও পরে এটি।) উপরেরগুলি এগুলি মূল্যায়ন করে:

Quantity[4.57*10^9, "Years"]

যা হিসাবে প্রদর্শিত হয়

এখানে চিত্র বর্ণনা লিখুন

দৈর্ঘ্যের 19 স্নিপেট

MandelbrotSetPlot[]

হ্যাঁ ... খুব দরকারী ফাংশন ... আমি সব সময় এটি ব্যবহার করি । (কখনও কখনও, সম্ভবত গণনাযোগ্য যে কোনও কিছুতে তাদের সমর্থন করার ইচ্ছাটি কিছুটা দূরে যেতে পারে ...)

গণিতের গ্রাফিক্স

তাদের প্রতিরক্ষাতে, ফাংশনটি তার থেকে কিছুটা বেশি কার্যকর: আপনি যে গ্রাফটি প্লট করতে চান তার একটি নির্দিষ্ট বিভাগ দিতে পারেন।

দৈর্ঘ্যের 18 স্নিপেট

PetersenGraph[7,2]

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

গণিতের গ্রাফিক্স

দৈর্ঘ্যের 17 স্নিপেট

Plot[x^x,{x,0,2}]

কিছু চক্রান্ত করার জন্য অবশেষে যথেষ্ট অক্ষর। উপরেরটি সত্যই এক মাত্রিক প্লটের সহজ উদাহরণ। আমি পরে কুলার প্লটগুলি প্রদর্শন করার প্রতিশ্রুতি দিচ্ছি

গণিতের গ্রাফিক্স

দৈর্ঘ্যের 15 স্নিপেট

{##4,#,#2,#3}&

এটি আরও শক্তিশালী দুটি বৈশিষ্ট্য (এবং গল্ফের জন্য দরকারীগুলিও) দেখায়। পুরো জিনিসটি একটি নামবিহীন খাঁটি ফাংশন , lambdaপাইথন এর সাথে তুলনীয় , বা রুবিতে প্রকস। খাঁটি ফাংশন সহজভাবে একটি দ্বারা সমাপ্ত হয় &। এই অপারেটরের খুব কম প্রাধান্য রয়েছে, যাতে এটি প্রায় বামে প্রায় সমস্ত কিছু অন্তর্ভুক্ত করে। খাঁটি ফাংশনের যুক্তিগুলির সাথে উল্লেখ করা হয় #, কখনও কখনও অন্যান্য জিনিস অনুসরণ করা হয়। প্রথম যুক্তি #বা #1, দ্বিতীয়#2 , ইত্যাদি।

অন্য বৈশিষ্ট্যটি হ'ল Sequenceএস। এগুলি মূলত অন্যান্য ভাষায় স্প্ল্যাটের মতো। একটি ক্রম চারপাশের তালিকা ব্যতীত তালিকার মতো - এটি আক্ষরিক অর্থে মানগুলির একটি অনুক্রম যা ##বিশেষত তালিকা, ফাংশন আর্গুমেন্ট ইত্যাদিতে ব্যবহার করা যেতে পারে সমস্ত খাঁটি-ফাংশন যুক্তির ক্রম argu ##2দ্বিতীয় থেকে শুরু করে সমস্ত যুক্তির ক্রম। সুতরাং আমরা যদি উপরের ফাংশনটির নাম রেখেছি fএবং এটি পছন্দ করি

f[1,2,3,4,5]

আমরা পেয়েছি

{4,5,1,2,3}

সুতরাং ফাংশনটি 3 টি উপাদানকে বাম দিকে ইনপুট আর্গুমেন্টগুলি ঘোরান। উল্লেখ্য যে ##4উল্লেখ4,5 তালিকাতে সমতল করা হয়েছিল

দৈর্ঘ্যের 12 স্নিপেট

D[x^y^x,x,y]

আংশিক পার্থক্য। Dফলস্বরূপ আপনাকে একটি প্রতীকী অভিব্যক্তি প্রদান করে এর প্রথম যুক্তিটি অন্যান্য যুক্তিগুলির সাথে সম্মানের সাথে ধারাবাহিকভাবে আলাদা করবে। সুতরাং উপরেরটি হ'ল (x ^ y ^ x) / ডিএক্সডি (যেখানে ডি গুলি আংশিক), যা ম্যাথমেটিকা ​​রিপোর্ট করেছে

x^y^x (y^(-1 + x) + y^(-1 + x) Log[x] + x y^(-1 + x) Log[x] Log[y]) + 
  x^(1 + y^x) y^(-1 + x) Log[x] (y^x/x + y^x Log[x] Log[y])

দৈর্ঘ্য 9 স্নিপেট

Exp[I*Pi]

আমরা এখনও কোনও জটিল পাটিগণিত করি নি! আপনি দেখতে পাচ্ছেন, πআসলে এটির জন্য কেবল একটি উপনাম ছিল Pi। যাইহোক, উপরেরটি সঠিকভাবে পূর্ণসংখ্যাটি প্রদান করবে -1

দৈর্ঘ্য 8 স্নিপেট

Sunset[]

হ্যাঁ। ক্রেজি বিল্ট-ইনগুলি সম্পর্কে কথা বলুন। প্যারামিটার ব্যতীত যা প্রকৃতপক্ষে আপনাকে আপনার বর্তমান অবস্থানে পরবর্তী সূর্যাস্তের একটি ডেটটাইম অবজেক্ট দেয়। এটি অন্যান্য তারিখগুলির জন্য, অন্যান্য অবস্থানগুলির জন্যও প্যারামিটারগুলি নিয়ে থাকে etc. এখানে এখনই এটি আমার কাছে দেখতে কেমন দেখাচ্ছে:

এখানে চিত্র বর্ণনা লিখুন

দৈর্ঘ্যের 7 স্নিপেট

9!/43!!

এই স্নিপেটটি কয়েকটি দুর্দান্ত জিনিস দেখায়।

গাণিতিকের কেবল বিল্ট-ইন ফ্যাক্টরিয়াল অপারেটর নেই !, এটিতে একটি ডাবল ফ্যাক্টরিয়ালও রয়েছে !!(যা প্রতিটি অন্যান্য সংখ্যাকে nনীচে থেকে গুণিত করে 1)। তদ্ব্যতীত, এটি স্বেচ্ছাচারিতা-নির্ভুলতা পূর্ণসংখ্যার সমর্থন করে। 43!!ঠিক মূল্যায়ন করা হবে, গত অঙ্ক নেমে। তদুপরি, যুক্তিযুক্ত সংখ্যাগুলিও ঠিক মূল্যায়ন করা হবে। সুতরাং, যেহেতু অংকের সংখ্যা এবং ডিনোমিনেটর উভয়ই পূর্ণসংখ্যা রয়েছে, ম্যাথমেটিকা ​​যতদূর সম্ভব ভগ্নাংশ কমিয়ে দেবে এবং তারপরে আপনাকে উপস্থাপন করবে

128/198893132162463319205625

অবশ্যই, আপনি যখনই চান ফ্লোটগুলি ব্যবহার করতে পারেন তবে সাধারণভাবে, যদি আপনার ইনপুটটিতে ভাসমান পদার্থ না থাকে তবে আপনার ফলাফলটি সঠিক হবে।

দৈর্ঘ্য 4 স্নিপেট

Here

ম্যাথামেটিকার ক্রেজিট বিল্ট-ইনগুলির ধন নিয়ে আমরা শুরু করার প্রায় সময়। উপরেরটি টিনের উপরে যা বলেছে তা করে এবং (আমার জন্য) এটি মূল্যায়ন করেGeoPosition[{51.51, -0.09}]

দৈর্ঘ্য 3 স্নিপেট

x-x

কেবল আসল ফ্যাকটোইডটি প্রদর্শনের জন্য : উপরোক্তগুলিx এখনও সংজ্ঞায়িত না হলেও এমনকি এটি কার্যকরভাবে ফলাফল করে 0

দৈর্ঘ্য 2 স্নিপেট

3x

জুস্টপজিশনের মাধ্যমে গুণ! যদি এটি স্পষ্ট হয় যে কোনও শনাক্তকারী শেষ হয় এবং অন্যটি শুরু হয়, *তাদের একসাথে গুণ করার জন্য আপনার একটি বা এমনকি শ্বেত স্পেসের প্রয়োজন নেই । এটি স্ট্রিংস এবং ভেরিয়েবলগুলির সহ এখনও বেশ কয়েকটি কিছুর সাথে কাজ করে যার মান এখনও নেই। গল্ফ জন্য খুব সুবিধাজনক। ;)

দৈর্ঘ্য 1 স্নিপেট

π

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

Factoid

গাণিতিক প্রতীকী ম্যানিপুলেশন সম্পাদন করতে পারে, সুতরাং ভেরিয়েবলগুলি তাদের সাথে কাজ করার জন্য মানগুলির প্রয়োজন হয় না।


19
স্নিপেট 23 বেশ কৌতূহলযুক্ত। আপনি যদি মনিটরের সামনে Translate[Scale[Rectangle, 80], {0, 0, 100}]বিশাল শব্দটি Rectangleভেসে উঠতে চান?
ক্যালভিনের শখ

53
@ ক্যালভিনের শখগুলি কেবল এটি চেষ্টা করে ... একটি দুর্ভাগ্যজনক zঅফসেট বেছে নিয়েছে ... আমাকে ঠিক মুখে চেপে ধরে।
মার্টিন এেন্ডার

45
অফিসিয়াল ম্যাথমেটিকা ​​ওয়েবসাইটটি একেবারে এর সাথে লিঙ্ক করা উচিত।
ক্যারিডরক

7
@ durron597 এটিকে একটি প্রতীক হিসাবে রেখে এবং আপনার সমস্ত ট্রিগনোমেট্রিক এবং জটিল ফাংশন একটি a এর সাথে কী করবেন সে সম্পর্কে সচেতন করে
মার্টিন এন্ডার

16
একবার আমি দেখেছি যে কিংবদন্তি মার্টিন বাটনার একটি গণিতের উত্তর পোস্ট করেছিলেন, আমি জানতাম যে জনপ্রিয়তার প্রতিযোগিতা জেতার আমার কোনও সুযোগ নেই। আপনি স্যার একটি সত্য উইজার্ড।
অ্যালেক্স এ।

187

কুখ্যাত শেক্সপিয়ার প্রোগ্রামিং ভাষা

শেক্সপিয়র প্রোগ্রামিং ল্যাঙ্গুয়েজ 2001 সালে দু'জন সুইডিশ শিক্ষার্থী কার্ল হাসেলস্ট্রোম এবং জন-এস্লুন্ড তৈরি করেছিলেন এবং লেখকরা যেমন ঘোষণা করেছেন , এটি মিলিত হয়েছে ,

সমাবেশ ভাষার ব্যবহারকারীর বন্ধুত্বের সাথে বেসিকের অভিব্যক্তি।

উত্তরগুলি নীচে থেকে নীচে যায়। এছাড়াও, আমাকে পুরানো বা পূর্ববর্তী স্নিপেটগুলি উল্লেখ করা দেখতে সাধারণ।

( আমার জন্য লিঙ্ক: সম্পাদনা )

Factoid:

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

দৈর্ঘ্য 1 স্নিপেট:

I

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

দৈর্ঘ্য 2 স্নিপেট:

as

দুটি "অক্ষর" এর মধ্যে তুলনামূলকভাবে ব্যবহৃত হয়।

দৈর্ঘ্য 3 স্নিপেট:

day

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

দৈর্ঘ্য 4 স্নিপেট:

rich

কী rich? একটি বিশেষণ. এসপিএলে, বিশেষণগুলি বিশেষ্যগুলি দুটি সংখ্যার সাথে সংখ্যায় যুক্ত হয়ে বিশেষ্যের মান তৈরি করে। স্নিপেট 14 এ বাস্তবায়ন দেখুন।

দৈর্ঘ্য 5 স্নিপেট:

Act I

প্রথম স্নিপেট বাস্তবায়ন। সমস্ত ক্রিয়াকলাপকে শিরোনাম দেওয়া যেতে পারে যেমন Act I: Hamlet must die!রোমান সংখ্যার পরে সমস্ত কিছু পার্সার দ্বারা উপেক্ষা করা হয়।

দৈর্ঘ্যের 6 টি স্নিপেট:

better

প্রতিটি ভাষার শর্ত থাকে এবং এসপিএলও এর ব্যতিক্রম নয়। বাদে, যেহেতু এটি দীর্ঘতর সিনট্যাক্সযুক্ত একটি ভাষা (এবং আমি কী এটিকে অদ্ভুত বলে উল্লেখ করেছি?), এর শর্তাধীন বিবৃতিগুলি দীর্ঘ হতে চলেছে। জুলিয়েটকে ওফেলিয়া জিজ্ঞাসা করা বেশিরভাগ "সাধারণ" ভাষায় Am I better than you?থাকার মতো if (Ophelia > Juliet)। এবং, অবশ্যই, আপনি কাছাকাছি অন্য উপায় জিজ্ঞাসা করতে পারেন: Am I not better than you?এর সমতুল্য if (Ophelia < Juliet)। এবং আপনি ইতিমধ্যে অনুমান করতে পারেন কীভাবে =এসপিএলে অনুবাদ করা হয়েছে: as good as- কোড স্নিপেট 2 ব্যবহার।

তবে good/betterএই শেকস্পেরিয়ান ভাষায় তুলনা করার একমাত্র উপায় নয়, আপনি যে কোনও বিশেষণ ব্যবহার করতে পারেন। স্নিপেট 3 একই নীতিটি এখানেও প্রয়োগ হয়, যেখানে "ধনাত্মক" বিশেষণগুলির মান রয়েছে >, যখন "নেতিবাচক" অর্থ রয়েছে <

দৈর্ঘ্য 7 স্নিপেট:

Juliet:

এটি একটি ভেরিয়েবলের প্রার্থনা; এর পরে, তার নির্দেশাবলী / ঘোষণা / যা যা অনুসরণ করবে।

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

দৈর্ঘ্য 8 স্নিপেট:

[Exeunt]

[Exeunt]সমস্ত "অক্ষর" "মঞ্চ" ত্যাগ করার পরে স্থাপন করা হয়। আশা করি চরিত্রগুলির মধ্যে মিথস্ক্রিয়া সম্পর্কে আমি আরও কিছুটা পরে বিস্তারিত বলতে পারি। সাধারণত কোনও এসপিএল প্রোগ্রামের শেষ নির্দেশনাটি, যদিও [Exeunt]বিশেষত ভাষার টার্মিনাল "চরিত্র" নয়। অন্য উদাহরণের জন্য, স্নিপেট 27 দেখুন।

দৈর্ঘ্য 9 স্নিপেট:

as bad as

কেবলমাত্র একটি =স্নিপেট ব্যবহার করে নয়টি অক্ষরকে উপস্থাপন করার জন্য 2. আমি কি উল্লেখ করেছি যে এসপিএলটি অদ্ভুত? উদাহরণস্বরূপ স্নিপেট 30 দেখুন। (এবং হ্যাঁ, এটির আউটপুট দেওয়ার একাধিক উপায় রয়েছে)

দৈর্ঘ্য 10 স্নিপেট:

difference

উপস্থাপনের অভিনব উপায় -, বিয়োগফল। আপনার এসপিএলে গণিত ক্রিয়াকলাপ থাকতে পারে, যদিও এটি সঠিকভাবে পেতে সম্ভবত আপনার একটি পুরো দিন প্রয়োজন।

ফ্যাক্টয়েড (যেহেতু আমি কোনওভাবে দশটি কোড স্নিপেটে পৌঁছানোর জন্য পরিচালনা করেছি, আসুন কিছুটা বিরতি নিই এবং এসপিএল সম্পর্কে আরও একটি ফ্যাক্টোড রাখি )

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

এসপিএল কোড চালানোর জন্য আরেকটি সাইট হ'ল এটি একটি যা অভ্যন্তরীণভাবে এসপিএল কোডটিকে অন্য এক বিশেষ ভাষায় অনুবাদ করে: আরাকল পিএল / এসকিউএল।

দৈর্ঘ্য 11 স্নিপেট:

[Exit Romeo]

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

দৈর্ঘ্যের 12 স্নিপেট:

Remember me.

এসপিএল বেশ "বেসিক", ঠিক আছে - তবে এতে স্ট্যাকস রয়েছে! উদাহরণস্বরূপ, যখন রোমিও জুলিয়েটকে "তাকে স্মরণ করতে" বলবে, তখন সে আসলে তার প্রিয়জনকে বলছিল যে রোমিওর মানটিকে তার স্ট্যাকের মধ্যে ফেলে দিতে। মান পপিং করা হয় Recall your happy childhood!, বা Recall your love for me, বা মূলত যে কোনও বাক্য দিয়ে শুরু হয় Recall- বাকিটি স্নিপেট 22 এর মতো কেবল শৈল্পিক ড্রাইভ।

দৈর্ঘ্যের 13 স্নিপেট

Let us return

শেকস্পেরিয়ান একটি উপায় goto। এবং এখানেই আইন এবং দৃশ্যাবলী কার্যকর হয়। যদি রোমিও জুলিয়েটকে বলে we shall return to Act II(হ্যাঁ, আবার এটি লেখার একাধিক উপায় রয়েছে), প্রোগ্রামটি কোডের সেই নির্দিষ্ট অংশে চলে যাবে। এটি শর্তাধীন বিবৃতি পাশাপাশি দেখাও যায়।

দৈর্ঘ্যের 14 স্নিপেট

my little pony

হ্যাঁ, এটি 80 এর দশকে ফিরে এসেছিল series এখানে, এটি 2*1। কেন? কারণ ক ponyএকটি (কিছুটা) ধনাত্মক বিশেষ্য এবং littleএকটি বিশেষণ। সুতরাং, 3 এবং 4 স্নিপেটগুলি স্মরণ করে আমাদের আছে little = "2 *"এবং আছে pony = "1"

দৈর্ঘ্যের 15 স্নিপেট

Speak thy mind!

একটি SPL প্রোগ্রাম মধ্যে, আপনি এটির দেখতে পাবেন (অথবা Speak your mind!, যা একই হয়) অনেক । এটি আপনার কম্পিউটার দ্বারা ব্যবহৃত চরিত্রের উপর নির্ভর করে ডিজিট, বর্ণ বা অন্য যে কোনও কিছুতে "অক্ষর" এর মানকে আউটপুট করে। এছাড়াও Open your mind.এটি প্রায় একই জিনিসটি করে, যদিও কেবল সংখ্যা আকারে আউটপুট হয়।

দৈর্ঘ্যের 16 স্নিপেট

You are nothing!

যখন কেউ আপনাকে বাস্তব জীবনে এই কথা বলেন, আপনি হতাশাগ্রস্থ বোধ করবেন। ওফেলিয়া যখন শেক্সপীয়ার প্রোগ্রামিংয়ে হ্যামলেটকে এটি জানায়, হ্যামলেট নিজেকে অকেজো মনে করে। এটার মানে কি? যে Hamlet = 0

দৈর্ঘ্যের 17 স্নিপেট

Ophelia, a wench.

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

কিন্তু "একটি wench" মানে কি? এর অর্থ কি এটি নির্দিষ্ট (এবং শীতল) ডেটা টাইপের নাম? ঠিক আছে ... আমি আপনাকে হতাশ করতে ঘৃণা করি, তবে এর অর্থ কিছুই নেই: কমা পরে পার্সার দ্বারা সমস্ত কিছুই উপেক্ষা করা হয়, যার অর্থ আপনি সেখানে ভীষণ আপত্তিজনক চালনা চালিয়ে যেতে পারেন।

দৈর্ঘ্যের 18 স্নিপেট

lying sorry coward

-4সমস্ত পার্থিব প্রাণী জন্য। কেন? কারণ 2*2*(-1) = -4

দৈর্ঘ্যের 19 স্নিপেট

Romeo:
 Remember me.

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

দৈর্ঘ্যের 20 স্নিপেট

cube of thy codpiece

আমি এইটির জন্য আরও কিছুটা বিশদভাবে জানাতে চেয়েছিলাম, তবে সত্য বলতে গেলে, আমি যে জিনিসগুলি নিয়ে এসেছি সেগুলি এই স্নিপেট দৈর্ঘ্যের জন্য এখনও খুব ছোট। এবং, সুতরাং, আমি এটি আপনার কাছে এনেছি, যা সত্তা শেষ হয় -1- কারণ (-1) 3 = -1 (এবং codpieceএটি একটি "নেতিবাচক" বিশেষ্য, যেহেতু তারা অস্বস্তিকর এবং সমস্ত)। এসপিএল আরও কয়েকটি বিস্তৃত পাটিগণিত অপারেশনগুলিকে কিছু ক্ষতিকারক এবং বর্গমূল হিসাবে বোঝে ।

ফ্যাক্টয়েড (অন্য একটি, যেহেতু আমরা অন্য মাইলফলকে পৌঁছেছি)

শেক্সপিরিয়ানের "হ্যালো ওয়ার্ল্ড প্রোগ্রাম" এর 89 টি লাইন রয়েছে এবং 2400 টিরও বেশি অক্ষর রয়েছে, যা এখানে দেখা গেছে

দৈর্ঘ্যের 21 স্নিপেট

Listen to your heart.

স্নিপেট 15 এ আপনি কিছু আউটপুট করেছেন; এখানে, আপনি প্রোগ্রামে একটি নম্বর ইনপুট। আপনি যদি কোনও অক্ষর ইনপুট করতে চান তবে আপনি Open your mind.পরিবর্তে ব্যবহার করবেন । এবং, এটি বলা বাহুল্য, এই মানটি কথিত "অক্ষর" এ সংরক্ষণ করা হবে।

দৈর্ঘ্যের 22 স্নিপেট

Recall your childhood!

স্টিপ থেকে পূর্ণসংখ্যা পপিং এটির সাথে সম্পন্ন করা হয়, যেমনটি স্নিপেট ১২-তে ব্যাখ্যা করা হয়েছে, যখন উদাহরণস্বরূপ, ওফেলিয়া হ্যামলেটকে পূর্বোক্ত বাক্যটি বলে, এটি হ্যামলেটকে তার স্ট্যাক থেকে একটি পূর্ণসংখ্যা নিতে এবং সেই মানটি গ্রহণ করে।

অবশ্যই, যতক্ষণ না শব্দটি recallবাক্যটি শুরু করছে, আপনি আপনার সৃজনশীল শেকস্পেরিয়ান মনের ইচ্ছার চেয়ে অনেক কিছুই পূরণ করতে পারেন।

দৈর্ঘ্যের 23 স্নিপেট

Are you better than me?

স্নিপেটের বাস্তবায়ন When. যখন একটি "চরিত্র" অন্যের কাছে এই জাতীয় প্রশ্ন করে, সে / সে যা করছে তা if (x > y)আরও সাধারণ প্রোগ্রামিং ভাষার সাথে সমান । আমার আরও অক্ষর উপলব্ধ না হওয়া অবধি এই নির্দেশের ফলোআপটি বিলম্ব করতে হবে।

দৈর্ঘ্যের 24 স্নিপেট

[Enter Romeo and Juliet]

হ্যাঁ, "অক্ষর" জোড়ায় প্রবেশ করতে পারে। এটির একটি "চরিত্র" মঞ্চে প্রবেশ করা প্রয়োজন, অন্য একজন অনুসরণ করে।

দৈর্ঘ্যের 25 স্নিপেট

remainder of the quotient

25 অক্ষর কেবল একটি লিখতে %। বিভাগের বাকি 25 টি অক্ষর। এবং এটি ব্যবহার করতে? ভাল, এটি আরও বড় - স্নিপেট 75 দেখুন।

দৈর্ঘ্যের 26 স্নিপেট

Let us return to scene II.

এটি এখানে, gotoএসপিএল-এ থাকা একটি , যা একটি প্রোগ্রামিং ভাষায় প্রত্যাশার মতো কাজ করে। একটি জিনিস হ'ল: আপনি একই অভিনয়তে এবং অভিনয়গুলির মধ্যে দৃশ্যের মধ্যে ঝাঁপিয়ে পড়তে পারেন; তবে আপনি বিভিন্ন ক্রিয়াকলাপের দৃশ্যের মধ্যে লাফ দিতে পারবেন না।

দৈর্ঘ্যের 27 স্নিপেট

[Exeunt Ophelia and Hamlet]

Exitএসপিএলের নাট্য প্রকৃতির পরিবর্তে যখন একাধিক "চরিত্র" মঞ্চ ত্যাগ করে এবং ল্যাটিন শব্দ "এক্সান্ট" ব্যবহৃত হয় latin কখনও কখনও এটি স্নিপেট 8 দ্বারা প্রতিস্থাপন করা যেতে পারে।

দৈর্ঘ্যের 28 স্নিপেট

Scene I: Ophelia's flattery.

একটি দৃশ্য ঘোষণা। আপনি ইতিমধ্যে আশা করতে পারেন যে আপনি যদি আমার সাথে মোকাবিলা করছেন, তবে গুরুত্বপূর্ণটি হ'ল Scene I, বাকীটি শৈল্পিক ফ্লাফ।

কিছু সংকলক তৈরি হয়েছে (যেমন এটি এসপিএল থেকে সিতে সংকলিত হয়, পাইথনে লিখিত ) যা পরিবর্তে আইন / দৃশ্যের সংখ্যার পরে পাঠ্যটি উল্লেখ করে। যদিও আরও যুক্তিযুক্ত (সর্বোপরি, একটি নাটকের সময়, "আসুন আমি আইনে ফিরে যাই" এর মতো লাইনগুলি বলার মতো অক্ষরগুলি বোকা বলে মনে করা যেতে পারে), আমি আসল উপায়ে আঁকছি।

দৈর্ঘ্যের 29 স্নিপেট

You pretty little warm thing!

হ্যাঁ, আরও একটি ধ্রুবক (যেহেতু আমাদের গাণিতিক ক্রিয়াকলাপগুলির জন্য আরও বেশি অক্ষর প্রয়োজন )। এই এক সমান 8, কারণ 2*2*2*1 = 8

দৈর্ঘ্যের 30 স্নিপেট

You are as cowardly as Hamlet!

উদাহরণস্বরূপ এটি বলার অর্থ রোমিও Romeo = Hamlet। স্নিপেট 9।

ফ্যাক্টয়েড (হ্যাঁ, অন্য একটি ল্যান্ডমার্ক পৌঁছেছে!)

এই ভাষাটি একটি সিনট্যাক্স বিশ্লেষণ কোর্সে একটি অ্যাসাইনমেন্টের জন্য তৈরি করা হয়েছিল - সুতরাং, কোনও এসপিএল সংকলক লেখক তৈরি করেন নি। আরও: মনে হচ্ছে এসপিএল-র লেখকরা তাদের সৃষ্টির সাথে তাদের সম্পর্ক ছিন্ন করেছেন, যেহেতু 2001 থেকে কোনও কিছুই ভাষাতে পরিবর্তিত হয়নি ...

দৈর্ঘ্যের 31 স্নিপেট

Am I as horrid as a flirt-gill?

হ্যাঁ, আমি জানি, এটি কিছুটা স্নিপেটের পুনরাবৃত্তি করছে, যদিও, এখানে আমরা "চরিত্র" এর সাথে তুলনা করছি যারা "ফ্লার্ট-গিল" এর সাথে কথা বলে (যদি আপনি পছন্দ করেন তবে if (Ophelia == -1))। ব্যাপারটা হলো...

দৈর্ঘ্যের 32 স্নিপেট

If so, let us return to scene I.

... এখন আমি thenএসপিএল, এবং শর্তসাপূর্ণ জাম্প-টু এবং লুপগুলি বাস্তবায়নের শেক্স্পেরিয়ান পদ্ধতিটি উপস্থাপন করতে পারি। উদাহরণস্বরূপ, আপনি রোমিওর মান ধরে নিতে পারেন, 0অন্য কোনও কাজ করার সময় তার মান বাড়িয়ে দিতে পারেন এবং 10 এ পৌঁছে গিয়ে থামিয়ে দিতে পারেন, পরে প্রোগ্রামটি দিয়ে এগিয়ে যান।

দৈর্ঘ্যের 33 স্নিপেট

If not, let us return to scene I.

কেবলমাত্র একটি অনুস্মারক, পরিবর্তে, আমরা পরিবর্তে অন্য দৃশ্যে এগিয়ে যেতে পারি যদি আমরা পরীক্ষার শর্তটি ভুল হয়

দৈর্ঘ্যের 34 স্নিপেট

Open your mind! Remember yourself.

পরপর দুটি নির্দেশ, ইয়াপি! প্রথমটি একটি অক্ষর পড়ে, দ্বিতীয়টি এটিকে অন্য চরিত্রের স্মৃতি স্ট্যাকের দিকে ঠেলে দেয়।

দৈর্ঘ্যের 35 স্নিপেট

Act I: Death!

Scene I: Oh, shit.

আইন এবং একটি দৃশ্য ঘোষণার সঠিক উপায় way স্বাদে শৈল্পিক মাশ যুক্ত করুন।

দৈর্ঘ্য 36 স্নিপেট

Thou art as sweet as a summer's day!

"চরিত্রটির সাথে" কথা বলার অন্য একটি উপায়টি মানটি গ্রহণ করবে 1- কারণ গ্রীষ্মের দিনগুলি সুন্দর এবং মনোরম।

দৈর্ঘ্য 37 স্নিপেট

Art thou more cunning than the Ghost?

ওফেলিয়া হ্যামলেটকে এই প্রশ্ন জিজ্ঞাসা করার অর্থ, এটি কম পাঠযোগ্য পাঠ্য প্রোগ্রামিং ভাষায় অনুবাদ করা if (Hamlet > the Ghost),। এটি আবার 23 স্নিপেট, হ্যাঁ - তবে এটি আপনাকে দেখায় যে "চরিত্রগুলি" একে অপরের চেয়ে ভাল হলে জিজ্ঞাসা করার প্রয়োজন নেই: অন্য কোনও প্রশ্নও কাজ করবে।

দৈর্ঘ্যের 38 স্নিপেট

[Enter the Ghost, Romeo and the Ghost]

হ্যাঁ, আমি একটি "চরিত্র" দু'বার কল করছি - কারণ আমি প্রোগ্রামটি আমাকে একটি ত্রুটি দিতে চেয়েছিলাম। ইতিমধ্যে মঞ্চে থাকা একটি "চরিত্র" কল করা বা প্রস্থান করার জন্য অনুপস্থিত এমন একজনকে বলা পার্সার / সংকলককে বড় দুঃখের কারণ করবে।

দৈর্ঘ্যের 39 স্নিপেট

the sum of a fat lazy pig and yourself!

পুরো নির্দেশটি আরও ভালভাবে দেখছে যে এটি, আমি আপনাকে এটি দিয়ে দেব, কিন্তু ... এখানে আমাদের প্রথম গাণিতিক অপারেশন! আসলে এর অর্থ কী? ঠিক আছে, pigএটি একটি নোংরা প্রাণী (স্বাদযুক্ত হলেও), সুতরাং এটির সমতুল্য -1, দুটি বিশেষণ রয়েছে যার অর্থ fat lazy pigসমান 2*2*(-1) = -4। তবে কি yourself? এটি একটি প্রতিচ্ছবি সর্বনাম, নাম বা বিশেষণ নয়। ভাল, মনে রাখবেন যে এসপিএল "অক্ষর" এর মধ্যে কথোপকথনের উপর ভিত্তি করে; সুতরাং, yourselfমঞ্চে অন্যান্য "চরিত্র" বোঝায়। সুতরাং, আমরা শেষে পৌঁছেছি এবং আমরা আবিষ্কার করেছি যে "একটি চর্বিযুক্ত অলস শূকর এবং নিজের যোগফল" আসলে -4 + x,।

দৈর্ঘ্যের 40 স্নিপেট

the sum of a squirrel and a white horse.

হ্যাঁ, অন্য যোগফল, তবে এটি একটি স্নিপেট 39 এর চেয়ে সহজ This এটি নিছক 1 + 2- 3যদি আমার গণিতটি সঠিক হয়।

ফ্যাকটোইড (শৈল্পিক ফ্লাফের এই চল্লিশটি স্নিপেটের পরেও এখনও আমার সাথে আছেন? আপনি পুরষ্কারের যোগ্য)

এসপিএল, এর সংস্করণ 1.2.1 এ এখানে ডাউনলোড করা যাবে

দৈর্ঘ্যের 41 স্নিপেট

Juliet:
 Speak thy mind!

[Exit Romeo]

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

দৈর্ঘ্যের 42 স্নিপেট

Speak YOUR mind! You are as bad as Hamlet!

আবার এক লাইনে দুটি নির্দেশনা (আমাদের একাধিক থাকতে পারে তবে স্নিপেট দৈর্ঘ্য এটি এখনও অনুমতি দেয় না); এখানে আমাদের একটি "চরিত্র" রয়েছে যার অপরটিকে এর মান আউটপুট করতে এবং হ্যামলেটের যেকোন মান ধরে নিতে বলে। বিভ্রান্তিকর? Mayhap।

দৈর্ঘ্যের 43 স্নিপেট

Am I as horrid as a half-witted flirt-gill?

জুলিয়েট এটি জিজ্ঞাসা করার অর্থ এই নয় যে তার কম সম্মান রয়েছে (যদিও এটি বাস্তবে হতে পারে); এটি কেবল অন্যটি if, যেমন স্নিপেটের মতো 23 এবং 37. ওহ, আমি প্রায় ভুলে গেছি: এটি অনুবাদ করে if (Juliet == -2)

দৈর্ঘ্যের 44 স্নিপেট

You are as evil as the square root of Romeo!

হ্যাঁ, বর্গাকার শিকড়গুলি মন্দ, আপনি জানেন না? যাইহোক, এই নির্দেশটি এটি কী করে তা বোঝার জন্য যথেষ্ট সহজ: রোমিওতে সঞ্চিত মানের বর্গমূলের মানটির সাথে কথিত "চরিত্রকে" চিহ্নিত করে।

দৈর্ঘ্যের 45 স্নিপেট

Hamlet:
 Art thou more cunning than the Ghost?

স্নিপেট 37 লাইনটি বলছে এমন চরিত্রের সাথে সঠিকভাবে লেখা।

দৈর্ঘ্যের 46 স্নিপেট

the product of a rural town and my rich purse.

ঠিক আছে ... যাইহোক, এসপিএল বিশ্বের একমাত্র ভাষা হতে পারে যা আপনাকে শহরগুলিকে পার্স দিয়ে বহুগুণে মঞ্জুরি দেয়। এর অর্থ (2*1)*(2*1)যা, যদি আমি খুব ভুল না হয়ে থাকি তবে এটি সমান 4

দৈর্ঘ্যের 47 স্নিপেট

Romeo:
 Speak your mind.

Juliet:
 Speak YOUR mind!

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

দৈর্ঘ্যের 48 স্নিপেট

You lying fatherless useless half-witted coward!

এটি সরাসরি অনুবাদ করা 2*2*2*2*(-1),। -16ঠিক আছে?

দৈর্ঘ্য 49 স্নিপেট

Scene V: Closure.

Hamlet:
 Speak your mind!

[Exeunt]

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

দৈর্ঘ্যের 50 স্নিপেট

Othello, a young squire.
Lady Macbeth, an old fart.

সঠিক নির্দেশাবলীর আগে আরও "চরিত্র" উপস্থাপনা। সর্বদা হিসাবে, সংকলকটির জন্য একমাত্র গুরুত্বপূর্ণ বিষয়টি Othelloএবং Lady Macbethতাই, বাকি রেখাটি আঁকড়ে ধরার জন্য ...

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

ফ্যাক্টয়েড (এই জিনিসগুলির অর্ধ শতাব্দী? ভাই! এর পরে আমি মনে করি আমি উইলিয়াম শেক্সপিয়ারকে ঘৃণা করব ...)

সিপি অনুবাদক, সিএল অনুবাদক, কিছুক্ষণ আগে উল্লেখ করেছিলেন এবং এসপিএল স্রষ্টাদের দ্বারা বিকাশ করা হয়েছিল, ফ্লেক্স এবং বাইসনের উপর ভিত্তি করে ।

দৈর্ঘ্যের 51 স্নিপেট

Othello:
 Recall your great dreams. Speak your mind!

(রোমিও, জুলিয়েট এবং হ্যামলেটের এত অসুস্থ ... আসুন পরিবর্তনের জন্য ওথেলোকে নিয়ে আসা যাক!)

Recallযেমন আপনি অনুমান করতে পারেন, এখানে মূল কী। ওথেলো যে চরিত্রটি সম্বোধন করছেন তা তার স্ট্যাকের থেকে একটি মূল্য নেবে, মানটি ধরে নিবে এবং পরে এটি আউটপুট দেবে।

দৈর্ঘ্যের 52 স্নিপেট

Thou art as pretty as the sum of thyself and my dog!

আর একটি যোগফল। হাই তোলা। এইটিকে ধরে নেওয়া হ্যামলেটকে সম্বোধন করা হয়েছে, এর অর্থ Hamlet = Hamlet + 1। বা Hamlet += 1। বা Hamlet++

দৈর্ঘ্যের 53 স্নিপেট

Romeo:
 You are as vile as the sum of me and yourself!

আহ, হ্যাঁ, আমি আগে যা কিছু উল্লেখ করতে ভুলে গেছি: স্পিকিং "অক্ষরগুলি" তাদের নিজস্ব লাইনে উল্লেখ করতে পারে।

দৈর্ঘ্যের 54 স্নিপেট

Juliet:
 Is the sum of Romeo and me as good as nothing?

পূর্ববর্তী স্নিপেটের আরও একটি উদাহরণ, একটি শর্তে অন্তর্ভুক্ত। সুতরাং আমাদের এখানে যা আছে তা if (Romeo + Juliet == 0)

দৈর্ঘ্যের 55 স্নিপেট

Juliet:
 You are as lovely as the sweetest reddest rose.

সুতরাং, এখানে জুলিয়েট যে "চরিত্রের" সাথে কথা বলছেন তার প্রশংসা করছে (আসুন ধরে নেওয়া যাক এটি রোমিও, শেক্সপিয়ারের জন্য), ঘোষণা করছেন যে তিনি / সে ৪। হ্যাঁ, মূল্যবোধের আরেকটি কার্যভার।

দৈর্ঘ্যের 56 স্নিপেট

Othello:
 You lying fatherless useless half-witted coward!

স্নিপেট 48 একটি "চরিত্র" দিয়ে সঠিকভাবে সম্পন্ন হয়েছে। আপনি যদি স্ক্রোল করতে খুব অলস হন (যেমন আমি হব), এর অর্থ হল যে অপমানিত হচ্ছে তার মান -16 পাওয়া যাচ্ছে।

দৈর্ঘ্যের 57 স্নিপেট

Romeo:
 If not, let us return to Act I. Recall thy riches!

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

দৈর্ঘ্যের 58 স্নিপেট

Romeo:
 You are as disgusting as the square root of Juliet!

স্নিপেট 44 ধরে নেওয়া এবং নির্দেশ কীভাবে উপস্থাপন করা উচিত তা উপস্থাপন করা হচ্ছে। এটি যদি রোমিও এবং ওথেলোর মধ্যে কথোপকথন হয়, তবে আমরা এটি জাভা হিসাবে অনুবাদ করতে পারতাম Othello = Math.sqrt(Juliet)

দৈর্ঘ্যের 59 স্নিপেট

Othello:
 You are as vile as the sum of yourself and a toad!

ঠিক আছে, যদি ওথেলো রোমিওর সাথে কথা বলছে তবে এটি সমান হবে Romeo+(-1); Romeo--, অল্পের জন্য. খুব বেসিক, তাই না? এটি আপনার জন্য এসপিএল।

দৈর্ঘ্যের 60 স্নিপেট

Is the quotient between the Ghost and me as good as nothing?

সংক্ষেপে, if (The Ghost/Hamlet == 0)"আমি" হ্যামলেট অন্তর্গত হিসাবে ধরে নেওয়া।

দৈর্ঘ্যের 61 স্নিপেট

Thou art as handsome as the sum of yourself and my chihuahua!

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

দৈর্ঘ্যের 62 স্নিপেট

twice the difference between a mistletoe and a oozing blister!

হ্যাঁ, হ্যাঁ, আরও গাণিতিক ক্রিয়াকলাপ। মোটামুটিভাবে, এসপিএলের এই 62 বাইটগুলিতে অনুবাদ করা যেতে পারে 2*(1-2*(-1))। এটি একটি চমত্কার দুর্দান্ত গল্ফিং ভাষা হবে, তাই না? ঠিক।

দৈর্ঘ্যের 63 স্নিপেট

You lying stupid fatherless rotten stinking half-witted coward!

স্নিপেট 48 আউটপুটড -16, এটি এক -64 এর সমান 2*2*2*2*2*2*(-1)

দৈর্ঘ্যের 64 স্নিপেট

your coward sorry little stuffed misused dusty oozing rotten sky

আমি এসপিএল সম্পর্কে যা বুঝতে পারি তা থেকে এটি পুরোপুরি বৈধ। আপনার একটি সম্পূর্ণ ইতিবাচক বিশেষণ রয়েছে যা "ধনাত্মক" বিশেষ্যটি এগিয়ে যায়। যেহেতু বিশেষণগুলির নেতিবাচক বা না সেগুলির কোনও বিশেষ পার্থক্য নেই (তাদের একমাত্র মানটি তাদের ডানদিকে সংখ্যাটি দুটি দ্বারা গুণিত করে), সুতরাং আমরা এর মতো সম্পূর্ণ নির্বোধ বাক্য থাকতে পারি। কোনটি 256. কারণ সমতূল্য 2*2*2*2*2*2*2*2*1=256

দৈর্ঘ্যের 65 স্নিপেট

You are nothing! You are as vile as the sum of thyself and a pig.

হুম, এত ঘৃণা, তাই না? সুতরাং, আমাদের এখানে যা আছে y=0; y=y+(-1);সম্ভবত সমতুল্য "গল্ফড" হতে পারে You are a pig!তবে হি ।

দৈর্ঘ্যের 66 স্নিপেট

You are as beautiful as the difference between Juliet and thyself.

তো, জুলিয়েটকে নিজের থেকে বিয়োগ কর, হি? এটি ডিকোড করা বেশ সহজ:, Romeo=Juliet-Romeo;ধরে নেওয়া যাক এটি রোমিও যার সাথে কথা হচ্ছে।

দৈর্ঘ্যের 67 স্নিপেট

Juliet:
 Am I better than you?

Romeo:
 If so, let us proceed to Act V.

কীভাবে সর্বাধিক পরিস্থিতি এসপিএলে কাজ করে। আপনি এক্সপ্রেশনটি পরীক্ষা করে দেখুন এবং যদি এটি সত্য হয় (বা না: স্নিপেট দেখুন 33), আপনি প্রোগ্রামের অন্য অংশে ঝাঁপ দাও; অন্যথায়, আপনি পরবর্তী বাক্যটিতে চালিয়ে যাবেন।

দৈর্ঘ্যের 68 স্নিপেট

The Ghost:
 You are as small as the sum of yourself and a stone wall!

হ্যাঁ, হ্যাঁ, আমি কিছুটা একঘেয়ে হয়ে যাচ্ছি। তবে এসপিএল এরকমই। আমি কিছুটা আগে বলেছি, এর প্রকাশগুলি পাটিগণিত ক্রিয়াকলাপের মিশ্রণ। সুতরাং, এটি আরও একটি বৃদ্ধি - যেহেতু stone wallএকটি নিরপেক্ষ "বিশেষ্য"।

দৈর্ঘ্যের 69 স্নিপেট

Thou art as disgusting as the difference between Othello and thyself!

যোগফলের পরিবর্তে আমাদের দুটি চরিত্র ওথেলো এবং যার সাথে কথা বলা হচ্ছে তার মধ্যে বিয়োগ আছে।

দৈর্ঘ্যের 70 স্নিপেট

You are as handsome as the sum of Romeo and his black lazy squirrel!

আমরা সংযোজনগুলিতে ফিরে আসি, হ্যাঁ - আমাকে সূত্র বলুন, হি। আমরা এটি অনুবাদ Romeo + 2*2*1

দৈর্ঘ্যের 71 স্নিপেট

Scene I: Dialogues.

[Enter Juliet]

Othello:
 Speak your mind!

[Exit Juliet]

একটি দৃশ্য এর চেয়ে ছোট হতে পারে। Julietমঞ্চে প্রবেশ করে, ওথেলো তাকে তার সঞ্চিত মান আউটপুট করতে বলে, তারপরে সে আবার মঞ্চে চলে যায়।

দৈর্ঘ্যের 72 স্নিপেট

twice the difference between a mistletoe and an oozing infected blister!

আরও একটি গাণিতিক অপারেশন - কারণ এসপিএল তাদের সাথে ধাঁধা দেয়। আমরা এটি অনুবাদ করতে পারি 2*(1-2*2*(-1))

দৈর্ঘ্যের 73 স্নিপেট

You are nothing! Remember me. Recall your unhappy story! Speak your mind!

পরপর চারটি নির্দেশ?! আমি আসলে নিজেকে নিয়ে বেশ গর্বিত। যাইহোক, ধরে নেওয়া যাক এটি রোমিও এবং জুলিয়েটের মধ্যে একটি কথোপকথন (এবং তিনি বলছেন): এর অর্থ হল জুলিয়েটের মান 0 থেকে শুরু হয়; তারপরে, জুলিয়েট তার স্মৃতি স্তরে রোমিওর মানটিকে ঠেলে দেবে, এটিকে পপ করবে এবং এটিকে প্রবেশ করা আকারে আউটপুট দেবে। সরল, তাই না?

দৈর্ঘ্যের 74 স্নিপেট

You are as sweet as the sum of the sum of Romeo and his horse and his cat!

হ্যাঁ, হ্যাঁ, বিরক্তিকর উদাহরণ, আমি জানি। তবে এই X = (Romeo + 1) + 1

দৈর্ঘ্যের 75 স্নিপেট

Is the remainder of the quotient between Othello and me as good as nothing?

ভাল, এটা বেশ সোজা। আপনার ডিকোডিং দক্ষতা যদি ত্রুটিযুক্ত হয় তবে এটি অনুবাদ করে if (Othello % X == 0)

দৈর্ঘ্যের 76 স্নিপেট

Thou art as rich as the sum of thyself and my dog! Let us return to scene I.

এর আগে একটি অভিব্যক্তি সহ স্নিপেট 26 থেকে লাফ। একটি gotoSPL সর্বদা একটি শর্ত কাছাকাছি পাওয়া যায় না, এটা ভালো হতে পারে - এবং, অবশ্যই, এই ধরনের gotoসবসময়, একটি আইন বা সিন শেষে পাওয়া যাবে পরে নির্দেশাবলী থেকে কম্পাইল কখনো করা হবে না / সঞ্চালিত। প্রথম নির্দেশ প্রশংসনীয় সহজ: x=x+1

দৈর্ঘ্যের 77 স্নিপেট

[Exit Hamlet]

[Enter Romeo]

Juliet:
 Open your heart.

[Exit Juliet]

[Enter Hamlet]

সুতরাং, আমরা মঞ্চে জুলিয়েট এবং হ্যামলেট আছে; তবে আমাদের রোমিওর কাছ থেকে মূল্য প্রয়োজন। এইভাবে, খুব কদর্য মাথাব্যথা থেকে সংকলককে বাঁচানোর জন্য, প্রথমে আমরা হ্যামলেটকে মঞ্চ থেকে সরিয়ে ফেলি (যদিও এটি জুলিয়েট যে যেতে পারে) আমরা রোমিওকে মঞ্চে উঠতে বলি, জুলিয়েট তাকে আউটপুট দেওয়ার নির্দেশ দেয় সংখ্যা (স্নিপেট 21 এর ব্যাখ্যা দেখুন), তারপরে রোমিও মঞ্চ থেকে বেরিয়ে যায় এবং হ্যামলেট ফিরে আসে। খুব সোজা এবং সহজ।

দৈর্ঘ্যের 78 স্নিপেট

The Ghost:
 Speak thy mind.

Lady Macbeth:
 Listen to thy heart! Remember thyself.

সুতরাং, দ্য গোস্ট (হ্যামেলের মৃত বাবা) লেডি ম্যাকবেথকে তার মান আউটপুট করতে বলছে, যখন তিনি ঘোস্টকে একটি সংখ্যা পড়ার এবং এটি তার স্ট্যাকের মধ্যে ঠেলাঠেলি করার আদেশ দেন।


32
এই অবিশ্বাস্যভাবে আকর্ষণীয় এবং আপনার প্রোফাইলের চিত্রটি একটি উপযুক্ত ফিট, তিনি স্পষ্টতই দেখতে চান যা আমি কল্পনা করি কোনও এসপিএল প্রোগ্রামার দেখতে পছন্দ করবে।
ওভাররেੈਕਟਰ

3
@ প্রেমিকাকে আমি জানি না যে কোনও গুম্বির সাথে তুলনা করা গর্বিত বা গর্বিত হবে। ^ _ ^
রডল্ফো ডায়াস

9
উদ্ভটভাবে এখানে উদাহরণ পড়ার পক্ষে এটি সবচেয়ে অস্পষ্ট নয় ... এবং "অন্তত ব্যবহারিক" জন্য আবদ্ধ বলে মনে হয়।
এইচআরআর্যাম্ব্লার

6
পথে আপনাকে সাহায্য করার জন্য আরএফএল এখানে +1 - রোডলফোকে আরও একবার লঙ্ঘনের দিকে!
এইচআরআর্যামব্লার

3
পুনঃটুইট করুন আমি তাদের দেখার জন্য অপেক্ষা করছি। আপনার কাছে 120 টি ভোট রয়েছে।
ভূত_স_ই_ কোড কোড

176

Piet

Factoid

পিট একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ যেখানে সোর্স কোড ইমেজ নিয়ে গঠিত। প্রোগ্রামের প্রবাহটি শীর্ষ-বাম পিক্সেল দিয়ে শুরু হয় এবং চিত্রটি শেষ না হওয়া অবধি পিক্সেল এবং পিক্সেল গ্রুপগুলির মধ্যে ঘোরে।

সুশাসনের জন্য, পিট প্রোগ্রামগুলি সাধারণত একটি বর্ধিত সংস্করণে প্রদর্শিত হয়। এরকম ক্ষেত্রে শব্দটি codelএকই বর্ণের পিক্সেলের একটি গোষ্ঠী যা উত্স চিত্রের একটি পৃথক পিক্সেলের সাথে সম্পর্কিত বলে বর্ণনা করতে ব্যবহৃত হয়।

এই চ্যালেঞ্জের জন্য, যেহেতু পিট চরিত্রগুলি ব্যবহার করে না, তাই প্রতি ভোটের জন্য একটি কোডেল নমুনা প্রোগ্রামগুলির জন্য ব্যবহৃত হবে।

1 কোডেল

1 কোডেল

এটি একটি বৈধ প্রোগ্রাম, এটি কিছুই করে না এবং সমাপ্ত হয়। নিয়ন্ত্রণ প্রবাহ শীর্ষ-বামে (কেবল) পিক্সেল থেকে শুরু হয় এবং এর কোনও উপায় নেই, যা প্রোগ্রামটি শেষ করে।

এই ক্ষেত্রে পিক্সেল হ'ল একই প্রভাবের জন্য কোনও রঙ হতে পারে।

2 কোডেল

2 কোডেল

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

প্রোগ্রামাম প্রবাহ 2 টি কোডেলের মধ্যে পিছনে পিছনে সরে যায়, যেহেতু প্রতিটি একেরই একমাত্র উপায় অপরটির মধ্যে। 2 অঞ্চলের আকাশ এবং হালকাতার পার্থক্যের উপর নির্ভর করে পিডের কমান্ডগুলি একটি কোডেল বা অঞ্চল থেকে অন্য অঞ্চলে চলাচলের মাধ্যমে কার্যকর করা হয়। inputকমান্ড চলন্ত বাম-থেকে-ডান এবং তারপর addডান-থেকে-বাম হয়। প্রথম addকমান্ডে, স্ট্যাকের উপর একটি মাত্র মান থাকায় কিছুই ঘটবে না এবং স্পেসিফিকেশনটি বলে যে পর্যাপ্ত মান ব্যতীত কমান্ডগুলি উপেক্ষা করা হয়।

এই প্রোগ্রামটি এমন একটি লুপ যা কখনই শেষ হয় না, কারণ বেশিরভাগ পিট প্রোগ্রামগুলি খুব ছোট আকারের হবে, যেহেতু প্রোগ্রামটি প্রবাহিত করতে এবং এটি শেষ করতে সঠিকভাবে "ফাঁদ" পেতে কমপক্ষে কয়েকটি কোডেল লাগে।

3 কোডেল

3 কোডেল

এটি একটি বেসিক ইকো-টাইপ প্রোগ্রাম, এটি স্ট্যান্ডিন থেকে একবারে একটি অক্ষর পড়বে এবং এটি স্টাডাউটে মুদ্রণ করবে।

আবার এটি একটি অসীম লুপ। বাম থেকে ডানে ভ্রমণের মাধ্যমে প্রোগ্রামটি শুরু হয় যা inputতখন হয় output। প্রোগ্রামটি যখনই পারে ঠিক একই দিকে প্রবাহিত থাকবে। হালকা সবুজ কোডেলে একমাত্র প্রস্থানটি অন্য উপায়ে ফিরে যাওয়া শুরু করা start ডান থেকে বামে ফিরে ভ্রমণের সময় এটি সম্পাদন করার চেষ্টা করে subtractএবং addআদেশ দেয় তবে স্ট্যাকটি খালি তাই এগুলি কোনও অপশনে পরিণত হয়।

4 কোডেল

4 কোডেল

অনির্দিষ্টকালের জন্য অদলবদল করার জন্য 2 টি প্রিন্ট করে।

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

5 কোডেল

5 কোডেল

স্টিডিন থেকে একবারে একটি চরিত্র বারবার পড়ে এবং তাদের ইউনিকোড মানগুলির যোগফল ট্র্যাক করে।

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

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

6 কোডেল

6 কোডেল

আবার, অন্য চেহারা দিয়ে আগের কার্যকারিতা পুনরাবৃত্তি করা। এটি আরেকটি প্রতিধ্বনি প্রোগ্রাম যা স্টিডিন থেকে স্টডআউট পর্যন্ত একটি সময়ে একটি চরিত্র পড়ে।

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

7 কোডেল

7 কোডেল

তবুও অন্যরকম একধরণের ইকো প্রোগ্রাম।

এখানে আমরা আমাদের প্রথম কোডেল ব্লকগুলি আকার 1 এর চেয়ে বড় দেখি p পিইটিতে, একই রঙের কোডেলের যে কোনও ধরণের ব্লককে একক ব্লক হিসাবে ধরা হয়। pushনির্দেশ কার্য সম্পাদন করার সময় ব্লকের আকারের ক্ষেত্রে কিছু আসে যায় না , তাই এই প্রোগ্রামটি বিভিন্ন রঙ বাদ দিয়ে ঠিক 3-কোডেল সংস্করণের মতোই বিবেচনা করা হয়।

8 কোডেল

8 কোডেল

স্টিডিনের কাছ থেকে একটি সংখ্যা পড়ে এবং স্কয়ারটি বার বার বার করে দেয়।

4-কোডেল প্রোগ্রামের মতোই নিয়ন্ত্রণ প্রবাহ হ'ল মৌলিক ঘড়ির কাঁটা প্যাটার্ন। উপরের-বাম দিক থেকে শুরু করে ক্রিয়াকলাপগুলি হ'ল input, duplicate(স্ট্যাকের উপরের স্ট্যাকের শীর্ষ মানের একটি অতিরিক্ত অনুলিপি চাপ দেয়) multiply,, output। তারপরে এটি pushস্ট্যাকের 1 মান হিসাবে, সাদা জুড়ে স্লাইড করে যাতে কোনও কমান্ড কার্যকর করা হয় না এবং তারপরে popনীচের বাম থেকে উপরের-বাম কোডারে সরানোর সময় স্ট্যাকের 1 টি বন্ধ। এটি খালি স্ট্যাক সহ প্রোগ্রামটির শুরুতে এটি ফিরিয়ে দেয় এবং এটি পুনরাবৃত্তি করে।

9 কোডেল

9 কোডেল

1 + 2 = 3 যোগ করে এবং তারপরে সমাপ্ত হয়।

এখন উভয় মাত্রায় 2 টিরও বেশি কোডেল সহ আমাদের একটি প্রোগ্রাম রয়েছে, আমরা শেষ পর্যন্ত একটি অঞ্চল সেট করতে পারি যা প্রোগ্রামটিকে ফাঁদে ফেলবে এবং চিরতরে লুপিংয়ের পরিবর্তে এটি শেষ করবে। লাল কোডেল থেকে গা red় লাল অঞ্চলে প্রথম ক্রিয়াকলাপটি push1 এর 1, তারপরে প্রোগ্রামটি ঘুরিয়ে দেয় এবং মাঝখানে হালকা লাল কোডেলে প্রবাহিত হয় এবং এর pushমান 2 হয় হালকা লাল থেকে হালকা হলুদে প্রবাহিত হয় একটি addঅপারেশন নীচের হালকা হালকা হলুদ বারটি প্রোগ্রামটি শেষ করার কারণ হ'ল সমস্ত কোণ বন্ধ হয়ে যাওয়ায় এটি প্রবাহিত হওয়ার কোনও উপায় নেই।


1- এবং 2-উচ্চ প্রোগ্রামগুলি দ্রুত কুরুচিপূর্ণ এবং উদ্বেগজনক হয়ে উঠছে তাই এই বিন্দু থেকে আমি সংখ্যায় ফোকাস করতে যাচ্ছি যা প্রতিটি দিকে কমপক্ষে কয়েকটি কোডেল দেয়।

12 কোডেল

12 কোডেল

অবশেষে একটি প্রোগ্রাম যা এমন কিছু করে যা কার্যকর হিসাবে যুক্তিযুক্ত হতে পারে (যদিও এটি এখনও কিছুটা প্রসারিত)। ধারাবাহিকভাবে স্টিডিন থেকে 2 নম্বর পড়ে এবং পরে তাদের যোগফল বের করে এবং বারবার এটি করে।

প্রোগ্রামটি 4 টি রঙিন বারগুলি পারফিউম 2 এর inputsপরে বাম থেকে ডানদিকে প্রবাহিত করে তারপরে একটি addকমান্ড অনুসরণ করে । এরপরে এটি নীচের-ডান কোডেলে outputচলে যায় এবং একটি সম্পাদন করে এবং তারপরে শ্বেত অঞ্চল জুড়ে বামদিকে ফিরে যায়।

এটি 8 টি কোডেলে করা যেতে পারে, তবে আমাদের অতিরিক্ত জায়গা থাকায় আমরা এমন কোনও কিছু তৈরি করতে পারি যা কোনও পুরানো নো-সিগন্যাল টিভি ডিসপ্লে দ্বারা অনুপ্রাণিত হয় bit

15 কোডেল

15 কোডেল

স্টিডিন থেকে একটি সংখ্যা পড়ে এবং এর 'স্কোয়ার আউটপুট করে।

এটি এমন কিছু কৌশল অবলম্বন করে যাতে কোনও প্রোগ্রামে কিছুটা প্রতিসাম্য চেহারা পাওয়া যায় যা আসলে কিছু করে। বাম দিকের লাল দণ্ডটি বাকীগুলির চেয়ে নীচের কোডেলে একটি আলাদা রঙ, এই সত্যটি গ্রহণ করে যে (আমার পক্ষে কমপক্ষে) এই 2 টি শেড লাল দেখায়। প্রোগ্রামটি হালকা লাল অঞ্চল থেকে ডানদিকে হালকা নীল কোডেলে চলে যাবে এবং তারপরে প্রোগ্রামের মাঝামাঝি পেরিয়ে ডানদিকে হালকা সবুজ যেখানে এটি আটকা পড়েছে। এটা তোলে সঞ্চালিত input, duplicate, multiply, এবং outputঅপারেশন।

মাঝের কলামের উপরে এবং নীচে মাঝারি সবুজ কোডেল সহ গাer় লাল কোডেলটি আলংকারিক এবং প্রোগ্রামটি কখনই তাদের কাছে পৌঁছাতে পারে না।

20 কোডেল

20 কোডেল

স্টিডিন থেকে একটি 0 পড়ার আগ পর্যন্ত সংখ্যাগুলি পড়ে, যে সময়ে এটি সমস্ত প্রবেশ করা সংখ্যার যোগফলকে বের করে দেয় এবং প্রস্থান করে।

pointerঅপারেশন আকারে নিয়ন্ত্রণ প্রবাহ করতে আমাদের অবশেষে পর্যাপ্ত জায়গা আছে । বরাবর 4 codels সঞ্চালন input, duplicateএবং notঅপারেশন, এবং তারপর অন্য notঅপারেশন 2-codel নীচের হলুদ উপরের ডান মধ্যে ম্যাজেন্টা থেকে সরানোর। notঅপারেশন স্ট্যাকের বন্ধ শীর্ষ মান পপ আপ এবং একটি 1 পাহাড় জমে যদি উপরের মান 0 ছিলেন এবং একটি 1 অন্যথায়। অতএব ডাবল- notকোনও ননজারো মানকে একটি ১ দিয়ে প্রতিস্থাপন করে the হলুদ বার থেকে নীচে গা blue় নীল হয়ে যাওয়া একটি pointerক্রিয়াকলাপ সম্পাদন করে, যা স্ট্যাকের উপরের মানটিকে পপ করে এবং বহুবার দিশা দিকের দিকের দিকে ঘুরিয়ে দেয় moves

যদি শীর্ষ মানটি 1 হয় (যেমন আমরা একটি শূন্য প্রবেশ করিনি) দিক নির্দেশকটি বাম দিকে নির্দেশ করবে, একটি addঅপারেশনের জন্য ম্যাজেন্টা কোডেলে চলে যাবে (যা স্ট্যাকের কেবলমাত্র একটি মানের কারণে প্রথমবার উপেক্ষা করা হবে) এবং তারপরে সাদাটি দিয়ে প্রোগ্রামটি শুরু করতে to

পয়েন্টার অপারেশনে যদি স্ট্যাকের শীর্ষ মানটি শূন্য হয় তবে দিক নির্দেশিকাটি পরিবর্তন হবে না এবং প্রোগ্রামটি নীচের দিকে চালিয়ে যাবে। হালকা নীল ব্যান্ডে স্থানান্তরিত popহলে 0 টি স্ট্যাকের বাইরে প্রবেশ করানো হবে , কেবলমাত্র জমে থাকা সংখ্যার যোগফল রেখে। নীচে সায়ান বারে স্থানান্তরিত হওয়ার outputপরিমাণটি যোগ হবে এবং প্রোগ্রাম প্রবাহ আটকে যাওয়ার পরে তারপরে শেষ হবে ।

25 কোডেল

25 কোডেল

কাউন্টডাউন! স্টিডিনের কাছ থেকে একটি সংখ্যা পড়ে এবং তারপরে একবারে একটি সংখ্যা ছড়িয়ে দেওয়ার জন্য একটি গণনা 1 থেকে মুদ্রণ করে। উদাহরণস্বরূপ, 5 টি পড়লে 54321 মুদ্রণ করা হবে।

সায়ান থেকে হলুদ রঙের প্রথম অপারেশনটি হ'ল input। তারপরে হলুদটি হল যেখানে প্রোগ্রাম "লুপ" শুরু হয়। হলুদ> ম্যাজেন্টা> নীল duplicateতখন একটি outputতবে এটি স্ট্যাকের উপরের মানটি প্রিন্ট করে তবে একটি অনুলিপি রাখে। ডান দিকে নিচে মুভিং, আমরা pushস্ট্যাকের সম্মুখের মান 1 তারপর একটি সঞ্চালন subtraction, 1. আমাদের প্রবেশ মূল্য হ্রাস পরবর্তী duplicate, not, এবং অন্য notপাশে গাঢ় হলুদ থেকে নীচের অংশে ডানদিকে অবস্থিত হালকা ম্যাজেন্টা থেকে সরানোর। এটি পূর্ববর্তী প্রোগ্রামের মতো একই শূন্য / ননজারো চেক। হালকা নীল কোডেলের pointerবাম দিকে সরানো একটি ক্রিয়া সম্পাদন করে, যা হয় যদি শেষ হয়ে যায় তবে প্রোগ্রামটি শেষ করতে অন্ধকার সায়নে বাম দিকে চলে যাবে, অথবা প্রাথমিক ইনপুট ছাড়াই আমাদের লুপটি আবার শুরু করতে হলুদ পর্যন্ত চলে যাবে তবে আসল মান হ্রাস পেয়েছে 1 দ্বারা

লাল কোডেলের তিনটিই আলংকারিক এবং কোনও রঙ হতে পারে।

30 কোডেল

30 কোডেল

ফিবোনাচি জেনারেটর। ফাইবোনাচি সিকোয়েন্সের শর্তগুলি স্ট্যান্ডআউটে প্রিন্ট করে এবং থামায় না।

এটি rollঅপারেটরের প্রথম ভূমিকা , পাশাপাশি প্রথমবারের মতো 1 টির চেয়ে বড় অঞ্চলের আকারটি pushস্ট্যাকের উপর একটি নির্দিষ্ট মান পেতে অপারেটরের সাথে ব্যবহৃত হয় ।

বরাবরই ডানদিকের উপরের-বাম দিকে শুরু হয়। প্রথম 2 টি pushস্ট্যাকের উপরে একটি 1 পরিচালনা করে এবং তারপরে outputএটি ফিবোনাচি ক্রম দুটি 1s দিয়ে শুরু হয় তবে মূল প্রোগ্রামটির লুপটি কেবল একবার 1 মুদ্রণ করবে। তারপরে pushমূল প্রোগ্রামটির লুপটি শুরু করতে উপরের ডানদিকে অন্ধকার ম্যাজেন্টায় শেষ হওয়ার জন্য এটি স্ট্যাকের উপরে আরও 2 সেকেন্ড রয়েছে।

ডান দিকে আমরা নিচে মুভিং duplicateএবং outputক্রম পরবর্তী মেয়াদ বন্ধ মুদ্রণ, তারপর duplicateআবার বর্তমান ক্রম মান একটি কপি জন্য। নীচে বাম দিকে সরানো 2 টি pushক্রিয়াকলাপ চালায়। যেহেতু নীচে ডানদিকে হালকা লাল অঞ্চলটি আকারে 3 টি কোডেল, প্রথমটি push1 এর পরিবর্তে একটি 3 টি স্ট্যাকের দিকে ঠেলে দেবে।

হালকা নীল রঙে উঠে যাওয়া একটি rollঅপারেশন। এটি স্ট্যাকের বাইরে শীর্ষ 2 টি মানকে পপ করে এবং দ্বিতীয় মানের পপডের সমান গভীরতায় পপড প্রথম মানের সমান কয়েকটি রোলগুলি সম্পাদন করে। এই ক্ষেত্রে, এটি 3 এর গভীরতায় 1 রোল সঞ্চালন করবে গভীরতায় একটি রোল nস্ট্যাকের শীর্ষ মানটি (আমাদের সদৃশ বর্তমান মান) নেয় এবং এটি nগভীরতর স্থানে সমাধিস্থ করে । আমাদের স্ট্যাক এখন মাত্র 3 গভীর, এটি নীচে শীর্ষ মানটি সমাহিত করবে।

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

মাঝখানে হলুদ প্যাটার্নটি কখনও ব্যবহার করা হয় না।

54 কোডেল

54 কোডেল

প্রিন্ট "হাই!" stdout

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

pushবাম দিকে সায়ান অঞ্চল থেকে 5 এর সাথে প্রোগ্রামটি শুরু হয় । এখান থেকে এটি duplicateoperations টি অপারেশন সহ ডানদিক দিয়ে প্রবাহিত হয় 5 টি গুচ্ছ সহ স্ট্যাকটিকে প্রাইম করতে। এর পরে push1, subtractস্ট্যাকের উপরে একটি 4 রাখা, তারপরে 2 টি multiplyক্রিয়াকলাপ স্ট্যাকের শীর্ষে 4 * 5 * 5 = 100 রাখুন। তারপরে duplicate2 100 এর জন্য একটি ।

এখন প্রোগ্রামটি কালো থেকে বাউন্স করে নীচে বাম দিকে কাজ শুরু করে। Push3 এবং 2 এর ক্রিয়াকলাপ এবং তারপরে একটি roll5 এর অধীনে 2 100 গুলি কবর দেওয়ার জন্য পরবর্তীটি push1 টি, বিয়োগ করুন এবং স্ট্যাকের শীর্ষে 100 + 5-1 = 104 পেতে যোগ করুন, এটি ইউনিকোড "এইচ"। পরবর্তী 2 টি ক্রিয়াকলাপ push1 এবং pointerকোণার কাছাকাছি যেতে এবং মাঝ বরাবর ডানদিকে চলতে শুরু outputকরতে এবং তারপরে "এইচ" মুদ্রণ করতে।

পরবর্তী add100 + + 5 = 105 স্ট্যাকের উপর, এবং output"আমি" প্রিন্ট করতে। স্ট্যাকটিতে এখন দুটি 5 এস রয়েছে। Push1, add, multiply(1 + 5) * 5 = 30 দেয়। অবশেষে push3 এবং add33 এর outputজন্য এবং "!" এর পিছনে। প্রোগ্রামটি তখন ডানদিকে সবুজতে শেষ হওয়ার জন্য অবশিষ্ট সাদা স্থানের মধ্য দিয়ে যায়।


5
হাহ হ্যাঁ, এটির জন্য অপেক্ষা
করছিলাম

এটি কীভাবে 2 ডি চরিত্রের ভাষা থেকে আলাদা? এটি আপনার কক্ষের মানগুলি বোঝানোর উপায়।
জেডিগোগস

25
@jdlugosz অনেকগুলি প্রগা .় প্রোগ্রামিং ল্যাঙ্গুয়েজ, যখন আপনি এটিতে নামেন, কমান্ডগুলি এনকোড করার একটি অনন্য উপায় সহ কয়েকটি প্রাথমিক স্ট্যাক ম্যানিপুলেশন কমান্ড। আমি ব্যক্তিগতভাবে মনে করি এগুলিকে একটি চিত্রে এনকোড করা একটি ঝরঝরে ধারণা।
স্পেনসার

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

3
9 টি কোডেলের উদাহরণটি একটি মিনি-পোকবলের মতো দেখাচ্ছে। খুশী হলাম।
দ্য_বাসেট_হাউন্ড

155

> <> (মাছ)

(দ্রষ্টব্য: কিছু স্নিপেট পূর্ববর্তী স্নিপেটগুলিতে তৈরি করে, তাই বেশিরভাগ জবাবের বিপরীতে আমি এগুলি প্রথম থেকে সর্বশেষে রাখার সিদ্ধান্ত নিয়েছি))

Factoid:

বেফুঞ্জের মতো,> <> হ'ল স্ট্যাক-ভিত্তিক 2 ডি ভাষা। এর অর্থ হ'ল নির্দেশগুলি বেশিরভাগ traditionalতিহ্যবাহী ভাষার মতোই রৈখিকভাবে কার্যকর করা হয় না - প্রোগ্রামের প্রবাহ উপরে, নীচে, বাম বা ডান হতে পারে!

দৈর্ঘ্য 1 স্নিপেট:

X

X> <> এ একটি অবৈধ কমান্ড, সুতরাং ত্রুটি বার্তাটি something smells fishy...মুদ্রিত হয়। প্রকৃতপক্ষে, এটি <>> এ একমাত্র ত্রুটি বার্তা, কারণটি শূন্য দ্বারা ভাগ করা হোক বা খালি স্ট্যাকটি পপ করার চেষ্টা করা হোক।

দৈর্ঘ্য 2 স্নিপেট:

1n

> <> এ প্রোগ্রামের প্রবাহ উপরের বাম থেকে শুরু হয় এবং শুরুতে ডানদিকে। 1স্ট্যাকের উপর একটি 1 চাপায়, তারপরে nএটি একটি সংখ্যা হিসাবে মুদ্রণ করে (ASCII চর হিসাবে বিপরীতে)। তবে> <> প্রোগ্রামগুলি টোরয়েডাল, অর্থাত্ নির্দেশের পয়েন্টারটি যখন কোনও লাইনের শেষ প্রান্তে পৌঁছায় তখন চারপাশে জড়িয়ে যায়। সুতরাং nআমরা শুরুতে মোড়ানোর পরে , 1 টি মুদ্রণ করুন, শুরুতে মোড়ক করুন, 1 টি চাপুন, মুদ্রণ করুন ... এবং আমরা প্রিন্টিং 1চিরতরে শেষ করি !

দৈর্ঘ্য 3 স্নিপেট:

"o;

এখানে "স্ট্রিং পার্সিং, oASCII চর হিসাবে আউটপুট এবং ;প্রোগ্রামটি সমাপ্ত হয়। কিন্তু প্রোগ্রামটি আসলে সামগ্রিকভাবে কী করে?

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

হ্যাঁ, আমরা একটি স্ট্রিং শুরু এবং শেষ করতে একই কোট চরটি ব্যবহার করেছি!

দৈর্ঘ্য 4 স্নিপেট:

42n;

আমরা এখনও অবধি যা দেখেছি তার ভিত্তিতে, আপনি আশা করতে পারেন এটি 42 টি ধাক্কা দেবে, সংখ্যা হিসাবে আউটপুট তারপরে সমাপ্ত হবে। তবে> <> এর সমস্ত নির্দেশাবলী একক অক্ষর, সুতরাং এটি আসলে একটি 4 এবং 2 টি ঠেকায়, তারপরে স্ট্যাকের শীর্ষটিকে একটি সংখ্যা হিসাবে চিহ্নিত করবে (কেবল 2) এবং সমাপ্ত হবে।

দৈর্ঘ্য 5 স্নিপেট:

<v
;>

মনে রাখবেন,> <> একটি 2 ডি ভাষা। এর অর্থ হ'ল প্রোগ্রাম প্রবাহের দিক পরিবর্তন করার উপায় রয়েছে!

Befunge ভালো লেগেছে, এক উপায় আপনি এটা করতে পারেন তীর মারফত >^v<। তারা কীভাবে কাজ করে তা চিত্রিত করতে, আসুন উপরের প্রোগ্রামটি দেখুন:

  • প্রোগ্রাম প্রবাহ শুরুতে ডানদিকে
  • < প্রোগ্রামটি প্রবাহকে বাম দিকে করে তোলে - আমরা বাম দিকে চলে যাই এবং এর চারপাশে মোড়ানো করি v
  • v প্রোগ্রামটি নীচের দিকে প্রবাহিত করে - আমরা নীচে যান >
  • > প্রোগ্রামটি প্রবাহিত করে ডানদিকে - আমরা ডানদিকে চলে যাই এবং কাছাকাছি জড়ান ;
  • অবশেষে, আমরা সমাপ্ত করি।

দৈর্ঘ্যের 6 টি স্নিপেট:

";"00p

> <> এর আরেকটি দুর্দান্ত বৈশিষ্ট্যটি এটি প্রতিচ্ছবিযুক্ত - প্রোগ্রামটি ফ্লাইতে নিজস্ব উত্স কোডটি সংশোধন করতে পারে!

এখানে আমরা একটি ধাক্কা ;, দুটি শূন্য পরে। pপরে উপরের তিনটি উপাদান পপ y, x, v( yস্ট্যাকের উপরে হচ্ছে) এবং স্থান vঅবস্থানে x,y। অন্য কথায়, pএই প্রোগ্রামটিতে 0,0কোডটি রূপান্তর করে, অবস্থানে একটি সেমিকোলন রাখে ;;"00p। এই তারপর প্রোগ্রাম বিনষ্ট, যেমন নির্দেশ পয়েন্টার এখন কাছাকাছি গোপন এবং executes নতুন স্থাপিত পারবেন ;

দৈর্ঘ্য 7 স্নিপেট:

\7*n;
6

নিঃ Befunge মত,> <> এছাড়াও আয়না (হয়েছে \/|_#) কোন প্রোগ্রাম প্রবাহের দিকের প্রতিফলিত করে। সুতরাং এখানে আমরা:

  • ডানদিকে শুরু করুন, তবে প্রতিচ্ছবিটি \আমাদের নীচের দিকে প্রতিফলিত করে
  • একটি 6 চাপুন এবং মোড়ানো
  • এর পিছনের দিকে আঘাত করুন \এবং ডানদিকে ফিরে প্রতিবিম্বিত করুন
  • একটি 7 ধাক্কা
  • স্ট্যাকের শীর্ষ দুটিকে গুণ করুন
  • আউটপুট এবং সমাপ্তি

একটি _আয়না মাধ্যমে আড়াআড়িভাবে সরানো বা আয়নার মাধ্যমে উল্লম্বভাবে |নো-ওপেন করা।

দৈর্ঘ্য 8 স্নিপেট:

"r00g>o<

ত্রুটি নিক্ষেপ করার অনুমতি দেওয়া হলে সম্ভবত সবচেয়ে সহজ> <> কুইন। এখানে দুটি নতুন নির্দেশাবলী হ'ল:

  • r: স্ট্যাক বিপরীত
  • g: - পপ পান y, xএবং চরিত্র ধাক্কা x,yস্ট্যাকের সম্মুখের (প্রতিরূপের আয়ত্তে p)

আগে থেকে স্ট্রিং মোড়ানোর কৌশলটি ব্যবহার করে প্রোগ্রামটি প্রথমে ধাক্কা দেয় r00g>o<এবং আবার প্রথম উদ্ধৃতিটিকে হিট করে। স্ট্যাকটি তারপর বিপরীত হয়, দেওয়া হয় <o>g00r। এরপর আমরা গৃহস্থালির কাজ ধাক্কা 0,0, "দিতে <o>g00r"। অবশেষে, আমরা oদুটি তীরের মধ্যে একটি আটকে রাখি , স্ট্যাকের উপরের আউটপুট আউট করে কিছু না পাওয়া পর্যন্ত এবং আমরা একটি ত্রুটি পাই।

দৈর্ঘ্য 9 স্নিপেট:

x0\>
\1n>

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

দৈর্ঘ্য 10 স্নিপেট:

;a comment

> <> এ কোনও মন্তব্য বাক্য গঠন নেই - এটির কোনও প্রয়োজন নেই। আপনি যা চান তা কেবল লিখুন এবং এটি কোড হিসাবে কার্যকর হবে না তা নিশ্চিত করুন!

দৈর্ঘ্য 11 স্নিপেট:

1!X2!X+!Xn;

!ট্রাম্পোলিন যা নির্দেশাবলীর বাইরে চলে যায়। এটি বিশেষত কার্যকর যখন ?একটি শর্তযুক্ত ট্রামপোলিন ব্যবহার করা হয় যা স্ট্যাকের শীর্ষে পপ করে এবং পপড উপাদানটি অ্যানজারো হলে পরবর্তী নির্দেশনা কার্যকর করে। এটি পরে কীভাবে কাজ করবে তা আমরা দেখতে পাব।

উপরের কোডটি Xকেবলমাত্র সম্পাদন করে এড়িয়ে গিয়ে 3 প্রিন্ট করে 1! 2! +! n;

দৈর্ঘ্যের 12 স্নিপেট:

01v
ao>:@+:n

ফিবোনাচি সংখ্যাগুলি চিরকাল দ্বিতীয় থেকে শুরু 1করে প্রতিটি লাইনে একটি করে মুদ্রণ করে । নতুন কমান্ডগুলি হ'ল:

  • a: 10 পুশ করুন, যা আমাদের নিউলাইনের জন্য প্রয়োজন। a-fযথাক্রমে 10 থেকে 15 চাপুন।
  • :: স্ট্যাকের সদৃশ শীর্ষ
  • @: স্ট্যাকের শীর্ষ তিনটি উপাদান ঘোরান, যেমন [5 4 3 2 1] -> [5 4 1 3 2]

প্রথম কয়েকটি পুনরাবৃত্তির জন্য ট্রেস করুন:

এখানে চিত্র বর্ণনা লিখুন

দৈর্ঘ্য 13 স্নিপেট:

i:d=?v
l?!;o>

একটি "ট্যাক" প্রোগ্রাম যা ইনপুটগুলির একটি লাইনে পড়ে এবং ফলাফলগুলি বিপরীত হয়। স্নিপেটের জন্য @ টমসমিডিংয়ের জন্য ধন্যবাদ।

=শীর্ষ দুটি উপাদান পপ করে এবং 1 টি পুশ করে যদি তারা সমান হয়, অন্যথায় 0। প্রথম লাইনটি ASCII চর 13 (ক্যারেজ রিটার্ন) না পাওয়া অবধি ইনপুটটিতে পড়া চালিয়ে যায়, যার পরে এটি দ্বিতীয় লাইনে চলে যায়।

l?!;oলুপ> <> একটি গুরুত্বপূর্ণ কনস্ট্রাক্ট যা সমগ্র স্ট্যাকের আউটপুট হয়। বিপরীতে >o<, এটি কোনও ত্রুটি ঘটায় না। এটা এভাবে কাজ করে:

  • l স্ট্যাকের দৈর্ঘ্যের দিকে ধাক্কা দেয়
  • আমরা এর সাথে দৈর্ঘ্যটি পরীক্ষা করি ?:
    • দৈর্ঘ্য যদি ননজারো ছিল, তবে পরবর্তী নির্দেশটি !কার্যকর করা হবে, এড়িয়ে যাওয়া;
    • তাহলে দৈর্ঘ্য ছিল শূন্য, তারপর আমরা চালানো না !এবং কারণে বিনষ্ট;

মনে রাখবেন যে আপনি গাড়ীর রিটার্নে আঘাত না করা পর্যন্ত কোনও আউটপুট আসলে ঘটে না।

দৈর্ঘ্য 14 স্নিপেট:

32.

   X67*n;

প্রোগ্রাম প্রবাহের দিক পরিবর্তন করার পাশাপাশি, আপনি নির্দেশের পয়েন্টারটি আপনার পছন্দ মতো যে কোনও জায়গায় সরাতে পারবেন!

.পপ y, xএবং নির্দেশ পয়েন্টার teleports x,y, নির্দেশ বজায় রাখার। নোট, তবে, আপনি যেখানে যেতে চান তার আগে আপনাকে একটি স্কোয়ারে স্থানান্তরিত করতে হবে - পরবর্তী নির্দেশটি কার্যকর করার আগে নির্দেশ পয়েন্টারটি আপডেট করা হয়। সুতরাং এখানে নির্দেশ পয়েন্টারটি অবৈধের উপর অবতরণ করে X, তবে 6কার্যকরীকরণ চালিয়ে যাওয়ার আগে পয়েন্টারটি আগে চলে যাওয়ার পরে সবকিছু ঠিক আছে ।

.সর্বাধিক> <> প্রোগ্রামগুলিকে ওয়ান-লাইনারে রূপান্তর করা সম্ভব করে তোলে তবে আপনি 2D এর মজা কেন হারিয়ে ফেলতে চান? :)

দৈর্ঘ্যের 15 স্নিপেট:

01+:aa*=?;:nao!

সংখ্যার মুদ্রণ 0করার জন্য 99, প্রতিটি লাইনে এক। এই প্রোগ্রামটি !ট্রামপোলিনের একটি ঝরঝরে ব্যবহার প্রদর্শন করে - প্রাথমিক 0 কেবল একবারে ধাক্কা দেয় তা নিশ্চিত করতে।

দৈর্ঘ্যের 16 স্নিপেট:

"r00g!;oooooooo|

একটি সঠিক quine যা নেই ত্রুটি নিক্ষেপ, উপর quine দ্বারা অনুপ্রাণিত esolang পৃষ্ঠা

আপনি যদি পূর্ববর্তী কুইন (স্নিপেট # 8) কীভাবে সংশোধন করবেন সে সম্পর্কে ভেবে দেখেন যাতে এটি কোনও ত্রুটি সৃষ্টি না করে এবং "কেন আমি কেবলমাত্র এক টন oনির্দেশনা যোগ করব না ?", আপনি বুঝতে পারছেন যে oআপনি যুক্ত প্রত্যেকটির জন্য , আপনি অন্য আউটপুট প্রয়োজন o! এই কুইনটি সুন্দরভাবে |শেষে একটি আয়না রেখে সমস্যার সমাধান করে , যা প্রতিটিকে দুবারo ব্যবহার করতে দেয় ।

যদি আমরা একক উদ্ধৃতিতে স্যুইচ করি (যা স্ট্রিং পার্সিংয়ের জন্যও হয়), তবে একটি বিকল্প কুইন যা ব্যবহার করে না gis

'r3d*!;oooooooo|

দৈর্ঘ্যের 17 স্নিপেট:

b2,63,.

   17,n;

আমাদের সংযোজন ( +), বিয়োগ ( -), গুণ ( *), মডুলো ( %) আছে ... তবে বিভাগের কী আছে? এটি সেখানে রয়েছে, তবে যেহেতু /ইতিমধ্যে একটি আয়না রয়েছে তাই বিভাগটিকে ,পরিবর্তে প্রতীক বরাদ্দ করা হয়েছে । মজার বিষয়, বিভাগটি ভাসমান বিভাগ, পূর্ণসংখ্যা বিভাগ নয়!

উপরের প্রোগ্রামটিতে ঝাঁপ দেওয়ার চেষ্টা করে কিছু অপরিজ্ঞাত আচরণের সন্ধান করে 11/2, 6/3পাইথন intepreter ঠিক আছে বলে মনে হয় যদি প্রথম তুল্য একটি পূর্ণসংখ্যা নয় (যদিও এটা ভুল ঘটনাস্থলে জাম্প), কিন্তু যদি দ্বিতীয় নয় গলগ্রহ হয়ে যায়।

দৈর্ঘ্যের 18 স্নিপেট:

123456${{$}nnnnnn;

আমরা দেখেছি rকোনটি স্ট্যাকটিকে বিপরীত করে এবং @যা শীর্ষ তিনটি উপাদানকে ঘোরায়। এখানে আরও কয়েকটি কমান্ড রয়েছে যা স্ট্যাকের উপাদানগুলিকে সরিয়ে দেয়:

  • $: শীর্ষ দুটি উপাদান অদলবদল করুন
  • {: পুরো স্ট্যাকটি বামে স্থানান্তর করুন
  • }: পুরো স্ট্যাকটি ডানদিকে চালিত করুন

এটি কীভাবে কাজ করে তা দেখাতে, প্রোগ্রামটির ট্রেসটি এখানে দেওয়া হয়েছে:

123456 ------> 123465 ------> 234651 ------> 346512 ------> 346521 ------> 134652
       $ Swap        { L shift      { L shift       $ Swap        } R shift

তারপর আমরা আউটপুট, প্রদান 256431

দৈর্ঘ্যের 19 স্নিপেট:

"reward"4[roooo]oo;

এখনও অবধি আমি "স্ট্যাক", "স্ট্যাক" বলছি ...

যদিও বেশিরভাগ প্রোগ্রামে একটি মাত্র স্ট্যাক ব্যবহার করা হয়,> <> আসলে একাধিক স্ট্যাক থাকতে পারে! এখানে সম্পর্কিত নির্দেশাবলী:

  • [: xশীর্ষ xউপাদানগুলিকে পোপ করে এবং একটি নতুন স্ট্যাকে নিয়ে যায়
  • ]: বর্তমান স্ট্যাকটি সরিয়ে দেয় এবং এর মানগুলি অন্তর্নিহিত স্ট্যাকের দিকে নিয়ে যায়।

উপরের প্রোগ্রামটির ট্রেসটি এখানে:

       [r e w a r d]       Push "reward"
4[     [r e] [w a r d]     Move four elements to a new stack
r      [r e] [d r a w]     Reverse the current stack
oooo   [r e] []            Output "ward"
]      [r e]               Remove the current stack, no values to move
oo     []                  Output "er", giving "warder" altogether

নোট করুন যে কেবল ধাক্কা দিয়ে rewardএবং তারপরে আবার আউটপুট দিয়ে ooooooমুদ্রণ করতে হবে drawer, স্ট্যাকের প্রকৃতির কারণে "প্রথমে শেষ হবে"।

দৈর্ঘ্যের 20 স্নিপেট:

aa*5+\
7a*2+\
oo;  \

> <> এর সামান্য জ্ঞাত বৈশিষ্ট্যটি হ'ল পাইথনের মতো ব্যাকস্ল্যাশগুলি অনেক ক্ষেত্রে লাইন ধারাবাহিকতার জন্য ব্যবহার করা যেতে পারে *

উপরের কোডটি কার্যত একই রকম

aa*5+7a*2+oo;

* অস্বীকৃতি: এই কাজটি করার কারণটি সম্পূর্ণ ভিন্ন কারণে হতে পারে বা নাও পারে

দৈর্ঘ্যের 22 স্নিপেট:

1&fv ;n&<
&1->:0=?^:&*

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

উপরের প্রোগ্রামটি f(15) এর ফ্যাক্টরিয়াল গণনা করে 1307674368000 মুদ্রণ করেছে freplaced প্রতিস্থাপনের জন্য এখানে ট্রেসটি এখানে রয়েছে 4:

এখানে চিত্র বর্ণনা লিখুন

দৈর্ঘ্যের 24 স্নিপেট:

"Hello, World!"rl?!;of0.

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

দৈর্ঘ্যের 25 স্নিপেট:

0i:0(?v$a*$"0"-+!
   ;n~<

দুর্ভাগ্যক্রমে> <> কেবল একবারে স্টডিন থেকে একটি চর পড়ার অনুমতি দেয়, যা সংখ্যায় পড়া কিছুটা জটিল করে তোলে। 0-9 অঙ্কের সমন্বিত ইনপুটটির জন্য, এই প্রোগ্রামটি মূলত আটাই হয়, এসটিডিএন থেকে অঙ্কের একটি স্ট্রিংটিকে স্ট্যাকের একটি সংখ্যায় রূপান্তর করে (যা তখন মুদ্রিত হয়)।

অন্য নোটটি হ'ল ইওএফ- iতে, স্ট্যাকের উপর -1 ধাক্কা। এটি 0 ব্যবহার করে (বা "এর চেয়ে কম" তুলনা করে ইওএফের জন্য চেক করা সহজ করে তোলে ।

এই স্নিপেট এছাড়াও ব্যবহার করে ~, যা স্ট্যাকের শীর্ষ উপাদানটিকে পপ করে এবং ছাড় দেয়।

দৈর্ঘ্য 33 স্নিপেট:

i>:nao:1=?;\
 ^  ,2v?%2:/
 ^+1*3<

এখন অবধি বেশিরভাগ স্নিপেটগুলি হয় তুলনামূলকভাবে লিনিয়ার, বা কেবল <<> এর কার্যকারিতা প্রদর্শন করে এমন সাধারণ উদাহরণ। এখন আমি একটি উদাহরণ দিতে পারি যা ভাল </ b> প্রোগ্রামের সাথে> <> এ প্রোগ্রাম প্রবাহটি কতটা সহজ তা হাইলাইট করে।

প্রোগ্রামটি একটি একক ASCII অক্ষরে পড়ে এবং 3x+1এর কোড পয়েন্টে অ্যালগরিদম চালায় (ইন> <> অক্ষরগুলি মূলত পূর্ণসংখ্যা হয়)। অ্যালগরিদমের প্রতিটি পদক্ষেপ মুদ্রণ করা হয় যতক্ষণ না আমরা 1 টি আঘাত করি।

ইনপুট a(কোড পয়েন্ট 97) সহ প্রথম কয়েকটি পুনরাবৃত্তির জন্য এখানে একটি ট্রেস দেওয়া হয়েছে :

এখানে চিত্র বর্ণনা লিখুন

দৈর্ঘ্য 44 স্নিপেট:

a&>i:0(?v"+"$\
/&^?=0l< "a*"/
\:1+&2p/\0
n
;

আমি মনে করি না যে আমি pকমান্ড ন্যায়বিচারটি করেছি , কেবল এটি একবারে স্নিপেট # 6 এ একবারে সমস্তভাবে ব্যবহার করেছে, সুতরাং এখানে একটি আলাদা আটোই ফাংশন রয়েছে। এই সম্পর্কে কি সুন্দর? প্রোগ্রামটি ইনপুটটি পড়ার সাথে সাথে সংখ্যাটি গণনা করার জন্য প্রয়োজনীয় অভিব্যক্তি লিখেছে !

সুতরাং ইনপুটটির মতো 573, সমস্ত অক্ষর পড়ার পরে তৃতীয় লাইনের শেষে দেখতে পাবেন \0a*5+a*7+a*3+যা 573-এ মূল্যায়ন করে!

আবার, ইনপুটটি কেবলমাত্র সংখ্যা হবে বলে আশা করা হচ্ছে। এখানে জিআইএফ ট্রেস করুন

দৈর্ঘ্যের 74 স্নিপেট:

>i:'A'(?v:'N'(?v:'['(?v\
  :'a'(?v:'n'(?v:'{'(?v\
^      o<    +d<  -d-d<o

আপনি যদি এখানে নামার ব্যবস্থা করে থাকেন তবে আমি যখন বলি এটি খুব পঠনযোগ্য ROT13 প্রোগ্রাম বলে আপনি আমার সাথে একমত হতে পারেন। একটি গৃহস্থালি দেওয়া c1, তাই আমরা প্রথমেই গৃহস্থালির কাজ খুঁজে c2মধ্যে AN[an{, যেমন যে c1 < c2, তারপর বিয়োগ যোগ / দ্বারা প্রয়োগ উপযুক্ত অফসেট d(13)। লক্ষ্য করুন [এবং {সরাসরি Zএবং zযথাক্রমে অক্ষরগুলি।

কনসোলে এটি ব্যবহার করে দেখুন, এবং টাইপ করার সাথে সাথে অক্ষরগুলি রূপান্তরিত দেখুন

(আপনি ইনপুটটিতে পাইপও করতে পারেন, তবে আমি যখন ইওএফটি মিস করছি :0(?;তখন এটি কোনও ত্রুটি দিয়ে থামবে যখন এটি চর হিসাবে -1 প্রিন্ট করার চেষ্টা করবে)


১৩ টি স্নিপেটের জন্য একটি ধারণা: i:d=?v NEWLINE o;!?l<- পিছনে ইনপুট লাইনটি মুদ্রণ করে
টমসডিং

12
আমি আশা করি আমি আরও বেশি ভোট দিতে পারতাম, আমি এখন> <>> ... শিখতে শুরু করতে অনুপ্রেরণা
পেয়েছি

6
শীর্ষে শুরু করতে এবং নীচে যেতে +1 (এবং এটি পড়ার জন্য মজাদার কারণ)।
mbomb007

5
@ এমবিম্ব০০7 এটি লজ্জাজনক, যদিও, আদেশটি বাম / ডানদিকে যেতে পারে না এবং পৃষ্ঠার নীচে মোড়ানো করতে পারেন: পি
krs013

আপনি যদি something smells fishy...পরবর্তী লাইনে লিখে থাকেন তবে আপনার দৈর্ঘ্যের 8 টি স্নিপেট একটি সত্যিকারের কুইন হবে ।
wizzwizz4

148

সি - সম্পাদনা করুন

ভোটের জন্য ধন্যবাদ! যখন অন্যান্য ভাষার সাথে তুলনা করা হয় এবং তারা সীমিত বাইটে কী করতে পারে, সি অপ্রচলিত, উদ্বেগজনক এবং বিকাশকারীর উপর খুব নির্ভরশীল দেখায়। বিভিন্ন উপায়ে এটি হ'ল: স্ক্রিপ্টযুক্ত এবং উচ্চতর স্তরের ভাষা স্বয়ংক্রিয় মেমরি পরিচালনার সাথে সি এর তুলনায় উত্পাদনের চেয়ে অনেক বেশি অভিব্যক্তিপূর্ণ এবং দ্রুত।

তাহলে সি বৈশিষ্ট্য কেন?

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

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

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

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

সমস্ত স্নিপেটগুলি তাদের নিজের থেকে কমপক্ষে সংকলনযোগ্য। যেগুলি সংযোগযোগ্য এবং নির্বাহযোগ্য তারা এগুলি হিসাবে চিহ্নিত করা হয়। আমি জানি এটি কোনও প্রয়োজন নয়, তবে কোনও কোড স্নিপেট কাজ করার জন্য প্রয়োজনীয় কাঠামোটি ব্যাখ্যা করার চেষ্টা করার চেয়ে সহজ করে তোলে।

আমি প্রতিটি কোড স্নিপেট যতটা সম্ভব সংক্ষিপ্ত তা নিশ্চিত করার চেষ্টা করেছি যাতে আমি একটি নির্দিষ্ট দৈর্ঘ্যে প্যাড করার জন্য অতিরিক্ত স্থানগুলি প্রবর্তন করছি না। কোডগুলি ইন্টেন্ট করা আছে এমন ক্ষেত্রে, ইনডেন্টগুলি দৈর্ঘ্যে অন্তর্ভুক্ত করা হয় না, প্রতিটি নতুন লাইনের জন্য কেবল একটি অক্ষর।

Factoid

সি শিলা।

দৈর্ঘ্য 0 স্নিপেট

বিশ্বের স্বল্পতম স্ব-প্রজনন কর্মসূচী http://www.ioccc.org/1994/smr.hint

দৈর্ঘ্য 1 স্নিপেট

;

সি সংকলন এবং লিঙ্কিংয়ের মধ্যে পার্থক্য তৈরি করে। সি-তে অনেক সত্ত্বা কেবল সংকলিত এবং পরে সংযুক্ত থাকে - একটি উদাহরণ সমস্ত স্ট্যাটিক এবং গতিশীল লাইব্রেরি।

অন্যান্য সত্ত্বাগুলি কেবল অন্তর্ভুক্ত রয়েছে এবং নিজের দ্বারা কোনও কোড তৈরি করে না।

উপরের আধা-কোলন অবশ্যই অবজেক্ট কোডে সংকলন করবে, এবং কিছুই করবে না!

দৈর্ঘ্য 2 স্নিপেট

x;

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

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

দৈর্ঘ্য 3 স্নিপেট

??/

সি এতটাই বিস্তৃত যে এটির জন্য সমস্ত অক্ষর ব্যবহার না করে এমন সিস্টেমে সামঞ্জস্য বৈশিষ্ট্য সরবরাহ করতে হবে। উপরেরটি ব্যাকস্ল্যাশ-এর ​​জন্য একটি ট্রিগ্রাফ, যা সিতে লাইন ধারাবাহিকতা চরিত্র হিসাবে ব্যবহৃত হয়। উপরেরগুলি সম্ভবত একটি সতর্কতার সাথে সংকলন করবে যে কোনও রেখা নিম্নলিখিত নয়।

সি-তে একটি সাধারণ সংস্কৃতি হ'ল সংকলনের সতর্কতাগুলিকে উপেক্ষা করা এবং অনেকগুলি বড় কোড ঘাঁটি যখন তৈরি করা হয় তখন তারা কয়েকটি বা আরও সতর্কতা অবলম্বন করে।

দৈর্ঘ্য 4 স্নিপেট

f();

আবার কে ও আর-এর সাথে উপরেরটি "পূর্ণ হয়ে গেছে" সংকলনের উপর বোঝায় যে "সেখানে বৈশ্বিক সংযোগ, একটি ফাংশন রয়েছে fযা পরে সরবরাহ করা হবে, যা একটি স্থির কিন্তু অনির্দিষ্ট সংখ্যক যুক্তি গ্রহণ করে এবং পূর্ণসংখ্যা ফেরত দেয়"।

এই এবং এর মধ্যে মৌলিক পার্থক্যগুলি নোট করুন f;

দৈর্ঘ্য 5 স্নিপেট

s="";

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

এটি এর মতো নির্মাণ যা আইওসিসিসি প্রতিযোগিতায় অনেকগুলি খুঁজে পাওয়া কঠিন বাগ তৈরি করেছে এবং অনেক অনুপ্রেরণা সরবরাহ করেছে।

দৈর্ঘ্যের 6 টি স্নিপেট

o=042;

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

সি এর এই বৈশিষ্ট্যটি অনেকগুলি বিকাশকারীকে তাদের সংখ্যাটি প্যাড করার জন্য চেষ্টা করে যা তাদের সুন্দর এবং এমনকি লাইন রেখেছে!

দৈর্ঘ্যের 7 স্নিপেট

f(){f;}

উপরের কোডটি একটি বডি সহ একটি ফাংশন। কিন্তু এটা কি কাজ করে? এটি ফাংশনের ঠিকানা পুনরুদ্ধার করে এবং এর সাথে কিছুই করে না! সাধারণত ফাংশনটি কী আসবে তা অপরিজ্ঞাত। এর মতো অযৌক্তিক কোডগুলি প্রায়শই সতর্কতা ছাড়াই সংকলন করতে পারে।

দৈর্ঘ্য 8 স্নিপেট

main(){}

এটি সি এর মধ্যে সংক্ষিপ্ততম সংকলনযোগ্য এবং লিঙ্কযোগ্য কোডটি উপস্থাপন করে যদিও সি এর আধুনিক সংস্করণে সাধারণত ফাংশনগুলি স্পষ্টভাবে সংজ্ঞায়িত করা যায় না, historicalতিহাসিক কারণে এই বিধিনিষেধটি শিথিল করা হয়েছে main

কোনও প্রোগ্রামের এই আশ্চর্য, যা 0 ফেরত ব্যতীত আর কিছুই করে না, অ-তুচ্ছ আকারে এবং বিভিন্ন সি রানটাইম রুটিনগুলিতে লিঙ্ক করবে। হুডের নীচে কী চলছে তা দেখতে আপনি ভার্বোসিটি সেট করে সংকলন করতে এবং সংযোগ করতে পারেন full

দৈর্ঘ্য 9 স্নিপেট

#define Z

সি হেডার ফাইলগুলির একটি প্রধান ভিত্তি হ'ল #define প্রিপ্রোসেসর নির্দেশিকা। সি প্রোগ্রামগুলি বিভিন্ন পর্যায়ে সংকলন করে এবং এর মধ্যে একটি পর্যায়ে এই সংজ্ঞাগুলি তাদের আসল মানগুলির সাথে প্রতিস্থাপিত হয়।

যখন কোনও আর্গুমেন্ট অনুপস্থিত থাকে, তখন সি বোঝায় 1, সুতরাং উত্স কোডে 1যেখানেই Zব্যবহৃত হবে তার উপরেরটি বিকল্প হিসাবে ব্যবহার করবে।

উপরেরগুলি সাধারণত একটি শিরোনাম ফাইল এবং #includeডি হিসাবে প্রয়োজনীয় হিসাবে রাখা হবে।

দৈর্ঘ্যের 10 স্নিপেট

enum{P,Q};

enumশব্দ ধ্রুবক একটি সিরিজ নির্ধারণ করতে কখনও কখনও টাইপ-নিরাপদ উপায় প্রদান করে। সংজ্ঞায়িত করার মতো, তারা প্রায়শই শিরোনাম ফাইলগুলিতে ব্যবহৃত হয়। উপরের কোডটি অন্তর্ভুক্ত করার সময় P0 এবং Q1 এর পূর্ণসংখ্যা হিসাবে সংজ্ঞায়িত হবে ।

দৈর্ঘ্যের 11 স্নিপেট

volatile v;

volatileশব্দ যাক কম্পাইলার জানি যে একটি পরিবর্তনশীল অন্যান্য এজেন্টদের দ্বারা পরিবর্তিত হতে পারে এবং অনুমানের এটি ব্যবহারের মধ্যে ধ্রুবক থাকবে না করতে হয়।

দৈর্ঘ্যের 12 স্নিপেট

#pragma once

#pragma once বর্তমান উত্স ফাইলটি একবারে একটি সংকলনে একবার অন্তর্ভুক্ত করা যেতে পারে তা নির্দেশ করার জন্য এটি একটি মানহীন তবে ব্যাপকভাবে সমর্থিত প্রিপ্রোসেসর নির্দেশিকা।

Traditionalতিহ্যবাহী এবং সম্পূর্ণরূপে সমর্থিত কৌশল হ'ল #includeযুক্ত কোড এবং সম্ভাব্য নাম সংঘর্ষের অসুবিধাগুলি সহ রক্ষীদের ব্যবহার করা ।

দৈর্ঘ্যের 13 স্নিপেট

w(){for(;;);}

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

কিছু সময় ভিতরে সমস্ত কিছু করা সম্ভব ()এবং লুপটির নিজের কোনও শরীরের প্রয়োজন হয় না। এই ক্ষেত্রে শেষে একটি ডামি সেমিকোলন যুক্ত করা হয়।

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

দৈর্ঘ্যের 14 স্নিপেট

int a[]={1,2};

সি তে অ্যারে নির্দিষ্ট দৈর্ঘ্যের প্রয়োজন হয় না। শূন্য স্কোয়ার বন্ধনীগুলি []সংকলককে "এটি নিজেকে নির্ধারণ করুন" বলে tell তবে সি ভাষায়, অন্যান্য ভাষার মতো নয়, এই সীমার বাইরে কোনও অ্যারে অ্যাক্সেস রোধ করার জন্য অন্তর্নির্মিত উপায় নেই, এটি সিটির জন্য পরিচিত "রূপকায় নিজেকে আঘাত করুন" রূপকটির দিকে পরিচালিত করে।

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

দৈর্ঘ্যের 15 স্নিপেট

const long k=7;

constSpecifer সি পরবর্তী উপরন্তু সি ++ থেকে ধার করা হয়। একটি সাধারণ সাক্ষাত্কারের প্রশ্নটি হ'ল "কোনও ভেরিয়েবলকে এর হিসাবে সংজ্ঞায়িত করা কি বোধগম্য volatile const?"? constপাশাপাশি enumএবং inlineনির্ভরতা হ্রাস করার উদ্দেশ্যে #defineযা ধরণের সুরক্ষার সমস্যা রয়েছে।

দৈর্ঘ্যের 16 স্নিপেট

extern void **q;

externকোনও ভেরিয়েবল অন্যত্র ঘোষিত হয়েছে তা বোঝাতে ব্যবহৃত হয় is void *টাইপ অর্থাত স্পষ্টভাবে নিয়োগ বিবৃতির কাস্ট বা নিক্ষেপ করা দরকার নেই, সি আদর্শ জেনেরিক প্রকার। **অপারেটর ক্রম একটি পয়েন্টার, যা প্রায়ই নতুনদের হৃদয় ও মন জয় হাতাহাতি পয়েন্টার মানে কিন্তু পুরোপুরি বৈধ এবং প্রায়ই ব্যবহার করা সি

দৈর্ঘ্যের 17 স্নিপেট

double d=4/3-1/3;

আপনি যদি উপরের মুদ্রণ করতে থাকেন তবে ফলাফলটি এক হবে এবং আপনি ভাবেন, দুর্দান্ত! পরিবর্তন করুন double d=4/3-2/3;এবং উত্তর কি? এটি এখনও একটি! সি 4/3 → 1 এবং 2/3 → 0, এবং 1 - 0 → 1 গণনা করতে পূর্ণসংখ্যার গাণিতিক ব্যবহার করছে!

দৈর্ঘ্যের 18 স্নিপেট

main(){puts("!");}

শেষ পর্যন্ত আমরা এমন কিছু কোড পেয়েছি যা আসলে কিছু করে! putsসি গল্ফারদের প্রিয় কারণ এটি ব্যবহারের জন্য একটি শিরোনাম ফাইলের প্রয়োজন হয় না।

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

দৈর্ঘ্যের 19 স্নিপেট

#include <stdlib.h>

শিরোনাম ফাইল অন্তর্ভুক্তি প্রায়শই বিকাশকারীদের ব্যক্তিগত স্বাক্ষর। অনেকগুলি অন্তর্ভুক্ত থাকে libএবং ioনির্বিশেষে প্রয়োজনে তাদের প্রয়োজন হয়। কেউ কেউ শিরোলেখ ফাইলগুলি অর্ডার করে যাতে দৈর্ঘ্য বৃদ্ধি বা হ্রাস পাচ্ছে। বেশিরভাগ <>আগে রাখা ""। ব্যক্তিগতভাবে আমি আমার টিএ এর দিনগুলিতে এই স্বাক্ষরটি শিক্ষার্থীদের মধ্যে প্রতারণার জন্য পরীক্ষা করতে ব্যবহার করেছি: একই শিরোনামের স্বাক্ষর? কাছ থেকে দেখা!

দৈর্ঘ্যের 20 স্নিপেট

char*p=(char*)0x300;

সি খুব নিম্ন স্তরের প্রাথমিক প্রাথমিক প্ল্যাটফর্মগুলিতে ব্যবহার করার জন্য ডিজাইন করা হয়েছে। কিছু ক্ষেত্রে আপনার বিশেষ মেমরি ম্যাপযুক্ত পোর্টগুলি সরাসরি অ্যাক্সেস করতে পারে।

পোর্ট এর ঠিকানা উপরের কোড হেক্সাডেসিমেল 300 হিসাবে সংজ্ঞায়িত করা হয় ব্যবহার করে আপনি দ্বারা বন্দর মান অ্যাক্সেস হবে *p, হিসাবে *p=0xff;সমস্ত বিট চালু করতে, অথবা v=*p;বর্তমান মান পুনরুদ্ধার করতে।

দৈর্ঘ্যের 21 স্নিপেট

int w=sizeof(double);

sizeofঅপারেটর একটি টাইপ এর বাইটে আকার প্রদান করে। পরিবর্তনশীল নামের সাথে বন্ধনীগুলি যেমন প্রয়োজন হয় না double d;int w=sizeof d;

দৈর্ঘ্যের 22 স্নিপেট

asm("xorl %ecx,%ecx");

কীভাবে asmব্যবহার করতে হয় তা সংকলক দ্বারা সংজ্ঞায়িত করা হয়। উপরেরটি একটি ইন্টেল প্ল্যাটফর্মের লিনাক্স জিসিসি ইন-লাইন কোডের উদাহরণ।

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

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

দৈর্ঘ্যের 23 স্নিপেট

union u{char c;int i;};

unionবৃহত্তম উপাদানটির জন্য কমপক্ষে পর্যাপ্ত জায়গা সরবরাহ করবে। আপনি দেখতে পাবেন এটি void *নির্দিষ্ট লাইব্রেরিতে একটি সাধারণ "অস্বচ্ছ" প্রকার সরবরাহের সাথে একত্রে ব্যবহৃত হয়েছিল । এই ক্ষেত্রে, ইউনিয়ন সাধারণত বৃহত্তর কাঠামোর অংশ হবে, কাঠামোর সাথে ইউনিয়নের ধরণ চিহ্নিত করার ক্ষেত্র থাকবে।

দৈর্ঘ্যের 24 স্নিপেট

/*INTS*/int i,j,k;//INTS

মূল সি মন্তব্যটি হিসাবে সীমিত করা হয়েছিল /* comment */এবং // comment to end of lineC ++ থেকে ফর্ম্যাট ধার করা হয়েছিল ।

দৈর্ঘ্যের 25 স্নিপেট

int main(void){return 1;}

এটি উপরের 8 স্নিপেটের দৈর্ঘ্যের আরও কমপ্লিমেন্ট সংস্করণ। রিটার্নের ধরণ এবং ফাংশনের ধরণগুলি নির্দিষ্ট করা হয় এবং এর স্পষ্টত ফেরত মান থাকে।

সি-র সম্মেলনটি হ'ল 0সাফল্য এবং 1ব্যর্থতার জন্য একটি রিটার্ন মান ব্যবহার করা বা আপনি যদি কঠোরভাবে সামঞ্জস্যপূর্ণ EXIT_SUCCESSএবং EXIT_FAILUREসংজ্ঞায়িত হিসাবে থাকতে চান stdlib.h

দৈর্ঘ্যের 26 স্নিপেট

typedef struct{int x,y;}P;

typedefবিশেষত, অত্যন্ত কার্যকর typedef struct। আধুনিক পরিভাষায় আপনি এটিকে "অবজেক্ট-ওরিয়েন্টেশন-আলো" বলতে পারেন।

উপরোক্ত বিষয়গুলি অন্তর্ভুক্ত করার পরে, কোডটি Pসম্পূর্ণ টাইপ-চেকিং সহ, ঘোষণা এবং ফাংশনগুলিতে নিয়মিত ধরণের হিসাবে ব্যবহার করতে পারে । সি ++ এর বিপরীতে, আপনি +, *, বা << এর মতো অপারেটরগুলি সংজ্ঞায়িত করতে পারবেন না, সুতরাং "অবজেক্ট-ওরিয়েন্টেশন-আলো"।

দৈর্ঘ্যের 27 স্নিপেট

#define C(x,y)(((x)+1)*(y))

সি একটি সুবিধাজনক ম্যাক্রো #defineসিনট্যাক্স আছে।

একটি সাধারণ নবাগত ত্রুটি হ'ল অভ্যন্তরীণ এবং / অথবা বাইরের বন্ধনী বাদ দেওয়া, ফলস্বরূপ অনুসন্ধানের জন্য অপারেটর অগ্রাধিকার ত্রুটির ফলস্বরূপ।

দৈর্ঘ্যের 28 স্নিপেট

struct f{int s:1,e:8,m:23;};

সি স্পষ্টভাবে বিট-ফিল্ডগুলি সংজ্ঞায়িত করতে পারে যা নির্ধারিত এবং পড়া এবং যে কোনও পূর্ণসংখ্যার মতো হেরফের হতে পারে।

উপরেরটি কোনও আইইইই সিঙ্গল-প্রস্থের ফ্লোটিং পয়েন্ট ডেটা স্ট্রাকচারের একটি অনুমান is

দৈর্ঘ্য 36 স্নিপেট

f(unsigned x){return!!x&!(x&(x-1));}

অনেক ভাষায়, আপনাকে কীভাবে সংখ্যা উপস্থাপন করা হয় তা যত্ন নেওয়ার দরকার নেই। সি-তে আপনাকে তাদের অভ্যন্তরীণ প্রতিনিধিত্ব সম্পর্কে অন্তরঙ্গভাবে সচেতন হওয়া দরকার।

আমি এর সর্বোত্তম উদাহরণটি বিবেচনা করতে পারি এটি নির্ধারণ করা হচ্ছে একটি পূর্ণসংখ্যা দুটি {1, 2, 4, 8, ... of এর শক্তি কিনা} সি এর সাথে পরিচিত নয় তারা ও (লগ (এন)) রান-টাইমের জন্য লুপ এবং শিফট এবং সমস্ত ধরণের স্টাফ করবে, খারাপ নয়, তবে উপরে একটি ফাংশন যা ও (1) রান-টাইমে একই কাজ করবে। আমি এটি পাঠকের পক্ষে এটি কাজ করে তা নিশ্চিত করার জন্য একটি অনুশীলন হিসাবে ছেড়ে দেব, তবে এটি সত্যিই ...

!!কনভেনশন প্রায়ই যথাক্রমে 1 এবং 0 তে নন-জিরো এবং শূন্য থেকে একটি পূর্ণসংখ্যা নিগৃহীত করতে ব্যবহৃত হয়। অনেক সি বিকাশকারী এই ধরণের কৌশলগুলি ব্যবহার করতে পছন্দ করেন (প্রায়শই যারা কোডের স্পষ্টতাকে মূল্য দেন তাদের মধ্যে মতবিরোধে)।

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

দৈর্ঘ্যের 48 স্নিপেট

#include<complex.h>
double complex c=3.0+I*4.0;

C99 জটিল সংখ্যার জন্য সমর্থন অন্তর্ভুক্ত। আপনি কোড থেকে দেখতে পাচ্ছেন, এটি একটি বাস্তব ধরণের জন্য একটি সংশোধক হিসাবে রূপ নেয়। আপনি এটি ব্যবহার করতে পারেন int complex c=3+I*4;তবে অভ্যন্তরীণভাবে এটি একটি ভাসমান পয়েন্টের ধরণে প্রযোজ্য। উপরের কোডটি জিসিসি ব্যবহার করে সংকলন করবে gcc -std=c99 -c length-48.c

আপনি যদি আরও ইন্টার্নাল দেখতে চান তবে -E স্যুইচটি সংকলনের চেষ্টা করুন। আমার সিসির সংস্করণটির জন্য উপরের ঘোষণাটি হয়ে যায় double _Complex c=3.0+(__extension__ 1.0iF)*4.0;। নোট করুন যে জটিল ধরণটি ভাষাতে একটি উল্লেখযোগ্য সংযোজন, কেবল কয়েকটি সস্তা ম্যাক্রো নয়।

এটি কেবলমাত্র একটি টিজার, যখন আমরা 125 টিরও বেশি অক্ষর পেয়ে যাব, তখন আমরা জটিল সংখ্যার সাথে কিছু আসল মজা শুরু করতে পারি!

দৈর্ঘ্যের 51 স্নিপেট

#include <math.h>
main(){double d=sqrt(sin(3.2));}

বিভিন্ন কারণে সি সিমান্ড গাণিতিক ক্রিয়াকলাপগুলি যেমন সাইন, কোস, ট্যান, স্কয়ার্ট ইত্যাদির সাথে স্বয়ংক্রিয়ভাবে লিঙ্ক দেয় না তাই তারা যদি ব্যবহার করা হয় তবে লিঙ্কযুক্ত না হয় তবে বিকাশকারীকে লিঙ্কারের ত্রুটির অনির্ধারিত রেফারেন্স সহ উপস্থাপন করা হবে 'sqrt' , বা অন্য কোনও ত্রুটি।

জিসিসিতে উপরের কোডটি সংকলন এবং ব্যবহার করে লিঙ্ক করবে gcc length-51.c -lm

নোটটি sin(3.2)একটি নেতিবাচক সংখ্যা প্রদান করবে, যার মধ্যে বর্গমূলটি বাস্তব ডোমেনে বৈধ নয়। সি-তে, NaNএই ত্রুটিটি চিহ্নিত করতে একটি বিশেষ মান ফিরে আসে, যা প্রোগ্রামটি উপেক্ষা করার জন্য নিখরচায়!

C99- তে এই ধরণের গণিতের ত্রুটিগুলির খুব সুরক্ষিত এবং সূক্ষ্ম-দানাযুক্ত নিয়ন্ত্রণ সরবরাহ করার জন্য অনেকগুলি নতুন ব্যতিক্রম হ্যান্ডলিং ফাংশন রয়েছে যা কেবল কেউই ব্যবহার করে না!

দৈর্ঘ্যের 63 স্নিপেট

static int w;static int X(int x){static int s=0;s^=x;return s;}

অথবা আরও বুদ্ধিমানের সাথে ফর্ম্যাট করা:

static int w;
static int X(int x)
{
    static int s=7;
    s^=x;
    return s;
}

আপনি যেমন অনুমান করতে পারেন, staticএটি সি-এর একাধিক অর্থ থাকা কীওয়ার্ড সম্পর্কে is

প্রথম দুটি ক্ষেত্রে, staticসংকলককে বলছে যে এই ফাইল বা সংকলনের ইউনিটের বাইরে পূর্ণসংখ্যা wএবং ফাংশন Xদৃশ্যমান নয়, অর্থাত্ তারা অভ্যন্তরীণ।

এই ফাংশনগুলি বাহ্যিকভাবে কল করার উদ্দেশ্যে নয়, তাই তারা বৈধতার জন্য আর্গুমেন্টগুলি চেক না করে এবং অন্য কোণগুলি কাটাতে পারে। তাদের অভ্যন্তরীণ সুযোগ রয়েছে বলে আপনি পুনরায় সংজ্ঞা দিতে পারেন wএবং Xঅন্যান্য ফাইলগুলিতে এবং সেগুলি সাধারণত পৃথক হবে।

শেষ ক্ষেত্রে, staticইঙ্গিত দেয় যে পূর্ণসংখ্যা sফাংশন কলগুলির মধ্যে এর মান ধরে রাখে। প্রথমবার Xবলা হয়, sএটির প্রাথমিক মান হবে 7, যখন এটি একচেটিয়া-ORed হয় x, তখন নতুন মান ধরে রাখা হবে।

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

সিতে একটি গেটচা হ'ল বৈশ্বিক চলকগুলির সাথে সংঘর্ষ। যতক্ষণ না wএবং Xআসলে হিসাবে সংজ্ঞায়িত করা হয় static, যদি তারা সংজ্ঞায়িত করা হয় বিশ্বব্যাপী কোথাও হলে, wএবং Xপরিবর্তে বিশ্বব্যাপী সত্ত্বা পড়ুন হবে।

এখানে qএবং wএকই মান থেকে আরম্ভ করা যাবে না, কারণ একটি বিশ্বব্যাপী wসেট করতে ব্যবহৃত হচ্ছে q:

static int q = w;
static int w;

যদি কোনও বিশ্বব্যাপী wঅস্তিত্ব না থাকে তবে সংকলনটি ব্যর্থ হওয়া উচিত।

এখানে qএবং wএকই মানের সাথে আরম্ভ করা হবে:

static int w;
static int q = w;

সাধারণত, ডিজাইনাররা তাদের বৈশ্বিক পরিবর্তনশীল এবং কার্যক্রমে একটি স্বতন্ত্র উপসর্গ বা প্রত্যয় যুক্ত করে নাম সংঘর্ষ হ্রাস করবে।

C99 এ, staticঅন্য ব্যবহার অর্জন করেছে, উদাহরণস্বরূপ int Y(int a[static 10]);যার অর্থ এমন একটি ফাংশন রয়েছে Yযা অন্তত 10 পূর্ণসংখ্যার অ্যারে নেয় takes

দৈর্ঘ্যের 74 স্নিপেট

void f(register int*p,register int*q,register int l){while(l--)*p++=*q++;}

বা সুন্দরভাবে ছড়িয়ে দেওয়া:

void f(register int *p, register int *q, register int l)
{
    while (l--)
        *p++ = *q++;
}

মূলশব্দটি registerসংকলককে একটি ইঙ্গিত সরবরাহ করে যে এখানে হার্ডওয়্যার রেজিস্টারগুলি ব্যবহার করা উপকারী হবে। উপরের ফাংশন কপি হবে lথেকে পূর্ণসংখ্যার qথেকে pযদি সম্ভব হার্ডওয়্যার রেজিস্টার ব্যবহার করে।

কখনও কখনও গতিগুলি উল্লেখযোগ্য হতে পারে। উদাহরণস্বরূপ, K৮ কে মাইক্রোপ্রসেসর পরিবারে, লাইনটি *p++ = *q++কোনও একক নির্দেশে MOVE.W (Ap)+,(Aq)+বনাম ছয় বা আটটিতে অনুবাদ করা যেতে পারে যদি আপনি ব্যবহার না করেন register। 68 কে মাইক্রোপ্রসেসরের সুস্পষ্ট পোস্ট-ইনক্রিমেন্ট এবং প্রাক-হ্রাস পদ্ধতিগুলি ছিল, তাই বুদ্ধিমান বিকাশকারী, যদি তিনি প্ল্যাটফর্মটি জানতেন তবে ব্যবহার করে x++এবং --yবনাম ++xএবং এর মাধ্যমে কোড অনুসারে কাজ করতেন y--

এই দিনগুলির সংকলকগুলি বেশিরভাগই registerএড়ানো ঠিকানাগুলি সেগুলির গ্রহণের অনুমতি না দেওয়া ব্যতীত উপেক্ষা করে (উদাহরণস্বরূপ উপরের অংশে &lসংকলক ত্রুটির কারণ হতে পারে)।

দৈর্ঘ্যের 88 স্নিপেট

#include<stdio.h>
int f(int x){return(x>1)?x*f(x-1):1;}int main(){printf("%d\n",f(12));}

অথবা স্যানার লেআউট সহ:

#include <stdio.h>

int f(int x)
{
    return (x > 1)? x * f(x - 1): 1;
}

int main()
{
    printf("%d\n", f(12));
}

আহ, পুনরাবৃত্তি! স্নিপেট সংকলন, লিঙ্ক এবং চালানোর জন্য একটি সম্পূর্ণ প্রোগ্রাম। ফাংশন fতার xপুনর্গঠন সূত্র f (x) = x * f (x - 1) ব্যবহার করে তার যুক্তির ফ্যাক্টরিয়াল গণনা করে । কারখানাগুলি সত্যই দ্রুত বড় হয়, উদাহরণস্বরূপ f(12)আপনি সাইন ইন 32-বিট পূর্ণসংখ্যায় পেতে পারেন এমন সবচেয়ে বড় মান।

সত্যিই পুনরাবৃত্তির কোডের উদাহরণের জন্য , অ্যাকারম্যান ফাংশনটির নির্বিকার প্রয়োগগুলি দেখুন ।

স্মার্ট inlineসংকলকগুলি ইঙ্গিতটি ব্যবহার করে ফাংশনটি অপ্টিমাইজ করতে পারে এবং যখন আর্গুমেন্ট হিসাবে ধ্রুবক সরবরাহ করা হয় তখন ফাংশনটিকে "আনারোল" করুন যাতে:

f(12)

হয়ে:

12 * 11 * 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1

কোন ফাংশন ছাড়া কল প্রয়োজন!

অন্যান্য সংকলকগুলি ফাংশনটি পুনর্গঠিত করতে পারে:

int f(int x)
{
    return (x < 2)? 1: f(x - 1);
}

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

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

দৈর্ঘ্য 117 স্নিপেট

#include<stdio.h>
int main(int c,char**v){int a,b;sscanf(v[1],"%d%*[\t ,]%d",&a,&b);printf("%d\t%d\n",a,b);return 0;}

বা:

#include <stdio.h>

int main(int c, char **v)
{
    int a, b;

    sscanf(v[1], "%d%*[\t ,]%d", &a, &b);
    printf("%d\t%d\n", a, b);

    return 0;
}

সি তৎকালীন সমসাময়িক ভাষাগুলি থেকে ধার নেওয়া, সর্বজনীন I / O এর ধারণাটি যে কোনও ডিভাইসে ধারাবাহিকভাবে প্রয়োগ করা যেতে পারে, কনসোল, পাঞ্চ কার্ড, টেপ, ডিস্ক বা প্রিন্টার হোক তবে সত্য সি আকারে এটি বিকাশকারীকে তৈরি করতে দিয়েছে খুব নিবিড় কিন্তু শক্তিশালী বিবৃতি।

উপরের স্নিপেটে, এটি কমান্ড লাইন ইনপুট নেবে, স্পেস, ট্যাব বা কমা দ্বারা পৃথক দুটি পূর্ণসংখ্যা পার্স করবে এবং সেগুলিকে আউটপুট দেবে। এটি একটি নতুন scanfনির্দিষ্টকারীর সুবিধা গ্রহণ %*[\t ,]করবে যা করবে: [\t ,]সমস্ত ট্যাব, স্পেস এবং কমাগুলি টেনে আনবে এবং: *এগুলি উপেক্ষা করবে।

আমি কিছু সি ++ কোড সংশোধন যেখানে ডেভেলপার সবকিছু "বিশুদ্ধ" সি ++ পথ সঙ্গে করছিলাম মনে রাখবেন <<মত পদ্ধতির একটি অস্ত্রাগার findএবং substr। এটি কমপক্ষে এক ডজন লাইন ছিল এবং এটি এখনও ডিলিমিটার হিসাবে কমাগুলি পরিচালনা করতে পারেনি। আমি cl সমস্ত ক্লঙ্কি কোডটিকে sscanfউপরে একটি লাইনের সাথে প্রতিস্থাপন করেছি !

দৈর্ঘ্য 132 স্নিপেট

#include<stdio.h>
int main(int c,char**v){while(--c){++v;printf("|%s|\n|%5s|\n|%-5s|\n|%.5s|\n|%5.5s|\n",*v,*v,*v,*v,*v);}return 0;}

বা:

#include <stdio.h>

int main(int c, char **v)
{
    while (--c)
    {
        ++v;
        printf("|%s|\n|%5s|\n|%-5s|\n|%.5s|\n|%5.5s|\n", *v, *v, *v, *v, *v);
    }

    return 0;
}

ফাংশন printf, sprintf, fprintfইত্যাদি ব্যবহার বিন্যাস নির্দিষ্টকরী প্রস্থ এবং আউটপুট প্যাডিং সংজ্ঞায়িত করতে।

বিভিন্ন আউটপুট দেখতে কমান্ড লাইন আর্গুমেন্টগুলি ব্যবহার করে উপরেরটি তৈরি এবং চালনা করুন:

> main xyz 123456
|xyz|                                                                                                                                                
|  xyz|                                                                                                                                              
|xyz  |                                                                                                                                              
|xyz|                                                                                                                                                
|  xyz|                                                                                                                                 
|123456|                                                                                                                                             
|123456|                                                                                                                                             
|123456|                                                                                                                                             
|12345|                                                                                                                                              
|12345| 

.5সুনির্দিষ্টর জন্য আউটপুট সর্বাধিক পাঁচটি অক্ষরে সীমাবদ্ধ করে নোট করুন , যখন শীর্ষস্থানীয় 5নিশ্চিত করে যে বাম সারিবদ্ধতা নির্দেশ করে আউটপুট কমপক্ষে পাঁচটি অক্ষর রয়েছে -। তাদের সংমিশ্রণটি ঠিক পাঁচটি অক্ষরে আউটপুট সেট করে।


4
আমি মনে করি না যে প্রতিটি উপরিভাগের জন্য নতুন ফ্যাকটোড যুক্ত করার প্রয়োজন ছিল :)
অপ্টিমাইজার

28
সিতে একটি সাধারণ সংস্কৃতি হ'ল সংকলনের সতর্কতাগুলি উপেক্ষা করা , আমি মনে করি না এটি সত্যের কাছাকাছি কোথাও নেই!
শাহবাজ

4
আপনার যদি একটি বিশাল প্রকল্প থাকে এবং একাধিক সংকলক বিবেচনা করে থাকেন, সমস্ত সতর্কতাগুলি অপসারণ করার চেষ্টা করা অব্যর্থ হতে পারে।
ফেয়ারসাম

5
এটি দুর্দান্ত
কিক

4
আমি একজন সি প্রোগ্রামার, এবং আমি হাস্কেলকে ভয় পাই না।
শাহবাজ

138

x86 মেশিন কোড

Factoid:

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

দৈর্ঘ্য 1:

এখন প্রথম প্রোগ্রামের জন্য:

0xC3

একটি হেক্স সম্পাদক খুলুন, সেই বাইটটি প্রবেশ করুন এবং টেস্ট ডটকম হিসাবে এটি সংরক্ষণ করুন।

আপনার কাছে এখন বৈধ এমএস-ডস প্রোগ্রাম রয়েছে যা 0xC3 হ'ল নির্দেশ 'আরইটি' হওয়ায় অবিলম্বে কিছু না করেই ফিরে আসে। তবে এটি x86: .com ফাইল ফর্ম্যাট সহ গল্ফ করার জন্য আরও একটি আকর্ষণীয় দিক দেখায়। এই এক্সিকিউটেবল ফর্ম্যাটটির একেবারে কোনও শিরোনাম নেই - ফাইলটি 0x100 ঠিকানার থেকে শুরু করে মেমরিতে লোড করা হয় এবং তারপরে 0x100 থেকে এক্সিকিউশন শুরু হয়। এর অর্থ মেটাডাটাতে কোনও বাইট অপচয় হয় না!

দৈর্ঘ্য 2:

আমাদের পরবর্তী প্রোগ্রাম:

0x4D 0x5A

বা এএসসিআইআইতে 'এমজেড'

ঠিক আছে, আমি কিছুটা প্রতারণা করেছি, এটি সত্যিকার অর্থে কোনও কার্যকর প্রোগ্রাম নয়, কারণ এটি নির্দেশের সাথে মিলে যায়

DEC     BP
POP     DX

যা আসলে .কম প্রোগ্রাম শুরু করার জন্য কার্যকর নয়। আসলে, এই দুটি মানের পুরো পয়েন্ট - কোন যুক্তিসঙ্গত। কম ফাইল তাদের দিয়ে শুরু করা উচিত নয়! .com ফাইলগুলি আকারে 65280 বাইটের মধ্যে সীমাবদ্ধ ছিল (64KiB - 0x100), সুতরাং যখন বৃহত্তর প্রোগ্রামগুলির প্রয়োজন শুরু হয়, তখন একটি নতুন ফর্ম্যাট বিকাশ করতে হয়েছিল। এটি .exe ফাইল ফর্ম্যাট ছিল, যার একটি শিরোনাম রয়েছে। যাইহোক, এমএস-ডসকে পিছনের সামঞ্জস্যের জন্য নির্দিষ্ট উপাদানগুলিতে .com এক্সটেনশন রাখা প্রয়োজন, সুতরাং .com ফাইলটি আসলেই একটি .exe ছিল কিনা তা সনাক্ত করার একটি উপায় প্রয়োজন। তারা এই ম্যাজিক নম্বর হিসাবে স্টিং 'এমজেড' বেছে নিয়েছে এবং আজ অবধি, আপনি যদি কোনও হেক্স সম্পাদকের উইন্ডোজ .exe (বা .dll) ফাইলটি খোলেন, আপনি দেখতে পাবেন যে তারা দুটি বাইট দিয়ে শুরু করবেন start এটি আমাকে বিস্মিত করে যে এমনকি সর্বাধিক আধুনিক উইন্ডোজ প্রোগ্রাম 70 এর দশকের থেকে সামঞ্জস্যতার বাধা দিয়ে শুরু হয়।

দৈর্ঘ্য 3:

এখন অসীম লুপের জন্য:

41 E2 FD

যা অনুবাদ করে

start:
inc cx
loop start 

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

দৈর্ঘ্য 4:

এমন একটি প্রোগ্রাম যা সর্বনিম্ন কার্যকর:

40 CD 10 C3

সমাবেশে অনুবাদ:

inc ax    ; 1 byte
int 10h   ; 2 bytes
ret       ; 1 byte

এই প্রোগ্রামটি কনসোলকে 40x25 টি অক্ষরে সেট করে, স্ক্রিন সাফ করে, তারপরে কমান্ড লাইনে ফিরে আসে। আমরা চাই এমন ভিডিও মোডে অ্যাক্স সেট করা হয়েছে (1), তারপরে BIOS বাধা 10 ঘন্টা আসলে ভিডিও মোড সেট করতে এবং ফিরে আসার আগে উইন্ডো সাফ করার জন্য ডাকা হয়। ভবিষ্যতে এই আরও বিআইওএস বাধা দেখার প্রত্যাশা করুন।

দৈর্ঘ্য 5:

আমরা এখন একটি বিরতি প্রোগ্রাম বাস্তবায়ন করতে পারি:

B4 01 CD 21 C3

সমাবেশে অনুবাদ:

mov ah,1  ; 2 bytes
int 21h   ; 2 bytes
ret       ; 1 byte

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

দৈর্ঘ্য 9:

এখন আসলে আউটপুট প্রদর্শন করতে:

68 00 B7 07 AB 40 79 FC C3

সমাবেশে অনুবাদ:

; These two instructions set up ES, the 'extra segment'
push 0xb700 ; 3 bytes
pop  es     ; 1 byte
label:
stosw       ; 1 byte, Store Word - Copy AX to [ES:DI] then add 2 to DI
inc  ax     ; 1 byte
jns  label  ; 2 bytes, Jump Not Signed - Jump unless the sign flag is set (when inc AX yields 0x8000
ret         ; 1 byte

আউটপুট হ'ল ডিফল্ট অক্ষর সেট বিভিন্ন রঙে পুনরাবৃত্তি হয়। এএক্স-এর লো বাইট হ'ল অক্ষর কোড এবং উচ্চ বাইটটি ব্যবহারের জন্য রঙগুলি নির্দিষ্ট করে। ডিফল্ট অক্ষর সেট বিভিন্ন রঙে পুনরাবৃত্তি

16 বিট প্রোগ্রামগুলি কেবলমাত্র 64KiB পর্যন্ত সরাসরি সম্বোধন করতে পারে। এটি পেতে, x86 'বিভাগগুলি' ব্যবহার করেছে - বিশেষ রেজিস্টারগুলি যেগুলি 16 দ্বারা গুণিত হবে এবং সমস্ত মেমরি অ্যাক্সেসগুলিতে অ্যাড্রেসযোগ্য মেমরির 20 বিট দিতে হবে। একটি প্রোগ্রাম আরও মেমরি - বা মেমরির বিশেষ ক্ষেত্রগুলি অ্যাক্সেসের জন্য এই বিভাগগুলির রেজিস্টারগুলির মানগুলিকে পরিবর্তন করতে পারে: ভিডিও মেমোরিতে লেখার জন্য এই প্রোগ্রামটি অতিরিক্ত বিভাগটিকে পরিবর্তন করে। বিভিন্ন ধরণের মেমরি অ্যাক্সেস বিভিন্ন সেগমেন্ট রেজিস্টার ব্যবহার করে কোড, ডেটা এবং স্ট্যাক একই সাথে মেমরির বিভিন্ন অংশে অ্যাক্সেসযোগ্য হতে দেয়। ডিফল্ট বিভাগটি অনেক নির্দেশাবলীর জন্যও ওভাররাইড করা যেতে পারে।

দৈর্ঘ্য 20:

আসুন কিছু চিনতে সক্ষম করুন - আমরা সিয়েরপিনস্কি ত্রিভুজ আঁকতে 'বিধি 90' ব্যবহার করব।

B0 13 CD 10 68 0F A0 1F AC 31 C2 88 94 3E 01 87 D3 93 EB F4

সমাবেশে:

mov al,13h      ; 2b
int 10h         ; 2b - Set the video mode to 13h

push    0xA00F  ; 3b
pop     ds      ; 1b - Set the data segment to video memory

start:          ; This loop runs 'Rule 90' to draw Sierpinski triangles
lodsb           ; 1b - load al with [ds:si] then increment si

xor     dx,ax   ; 2b - xor the left and right values of the previous row of pixels
mov     [si+318],dl ;4b - store result to memory

xchg    dx,bx   ; 2b - swap register values
xchg    ax,bx   ; 1b - swapping with ax is 1 byte shorter

jmp     start   ; 2b - infinite loop

নমুনা আউটপুট: সিয়েরপিনস্কি ট্রায়াঙ্গলস

এই প্রোগ্রামটির জন্য, আমরা কিছুটা বিখ্যাত 'মোড 13' ব্যবহার করি - একটি গ্রাফিক্স মোড যার রেজোলিউশন 320x200 এর 256 রঙ রয়েছে। এটি ডুমের মতো অনেক জনপ্রিয় ডস গেম দ্বারা ব্যবহৃত হয়েছিল ।

দৈর্ঘ্য 21

আসুন দেখা যাক আমরা যে সিপিইউটি চালাচ্ছি তা কে তৈরি করে।

0F A2 66 60 BB EE FF B9 0C 00 8A 17 43 B4 02 CD 21 E2 F7 FF E1

সমাবেশে অনুবাদ:

cpuid         ; 2b  CPU ID - retrieve processor information based on the value in AX. For AX=0,
              ;     the 12 bytes in EBX, ECX, and EDX are loaded with a vendor identification string
pushad        ; 2b  Push all registers on the stack (32 bit version)
mov  bx,0xffee; 3b  Start of the vendor identification string on the stack
mov  cx,12    ; 3b  12 characters to print
print:    
mov  dl,[bx]  ; 2b  Character to print
inc  bx       ; 1b  Advance string position
mov  ah,2     ; 2b  Set AH to the 'Print character to STDOUT' value
int  21h      ; 2b  Call the bios interrupt to print
loop print    ; 2b  Decrement CX and jump if it is not zero
jmp  cx       ; 2b  Instead of restoring the stack, just jump right to the exit point

নমুনা আউটপুট:

c:\misc>cpuid.com
GenuineIntel

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

দৈর্ঘ্য 26

আমরা এখন আকর্ষণীয় অ্যানিমেশন করতে পারি

B0 13 CD 10 C4 07 BB 40 01 59 99 89 F8 F7 F3 31 D0 AA E2 F6 26 FE 05 47 EB FA

বিধানসভায়

mov al,13h     ;2b
int 10h        ;2b Enter Video Mode 13h

les ax,[bx]    ;2b Set ES to (roughtly) video memory
mov     bx,320 ;3b Set up  BX asdivisor
pop     cx     ;1b Zeroize CX

start:
cwd            ;1b Sign extend AX to DX, AX will never have the sign bit set so this zeroizes DX in 1 byte
mov     ax,di  ;2b Copy video memory pointer
div     bx     ;2b Divide by width to get AX = Y pos, DX = X pos
xor     ax,dx  ;2b X pos ^ Y pos
stosb          ;1b Store and increment video pointer
loop    start  ;2b CX starts at 0, so this will loop until it wraps around

cycle:
inc     byte [es:di];3b Increment value in video memory to animate
inc     di     ;1b Increment video memory pointer
jmp     cycle  ;2b Infinite loop 

এবং আউটপুট এই মত চেহারা হবে:

মার্চিং এক্সওআর

এক্স পোস্ট-ওয়াই পোস্ট ফাংশনটি একটি আকর্ষণীয় ফ্র্যাক্টাল তৈরি করে, বিশেষত যখন অ্যানিমেটেড হয়

দৈর্ঘ্য 27

আপনি কেবল একটি ছোট x86 .com প্রোগ্রামে পাঠ্য এবং গ্রাফিক্স তৈরি করতে পারবেন না, আপনি শব্দ এবং সঙ্গীতও তৈরি করতে পারবেন:

BA 31 03 B0 3F EE BA 30 03 B0 93 EE B4 01 CD 21 3C 1B EE 3C 1B B0 7F EE 75 EC C3

সমাবেশে:

    mov dx,0x331            ; value for the midi control port
    mov al,0x3F             ; command value to set midi mode to UART
    out dx,al               ; output the command to the midi control port
play_loop:
    mov dx,0x330            ; value for the midi data port
    mov al,0x93             ; midi instrument value (piano)
    out dx,al               ; output to midi data port
    mov ah,1
    int 0x21                ; read character from stdin, with echo
    cmp al,27               ; test if it is escape
    out dx,al               ; output the ascii value as the midi note to play
    mov al,0x7F             ; note duration
    out dx,al               ; output note duration
    jne play_loop           ; loop if escape was not pressed
    ret  

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

দৈর্ঘ্য 29

ড্রাগন কার্ভ ফ্র্যাক্টাল উত্পন্ন করতে আসুন পুনরাবৃত্তি ফাংশন সিস্টেমটি ব্যবহার করুন :

B0 13 CD 10 89 D0 01 CA 29 C1 D1 FA D1 F9 73 03 83 E9 7A B4 01 CD 16 B8 02 0C 74 E6 C3

সমাবেশে অনুবাদ:

mov  al,13h
start:
int  0x10    ; This does double duty, setting the video mode to 13h at program start,
             ; and calling the 'draw pixel at coordinates' interrupt when looping
mov  ax,dx   ; The next couple instructions are our IFS, the algorithm is aproximately
add  dx,cx   ; f(y) = 0.5x + 0.5y
sub  cx,ax   ; f(x) = 0.5x - 0.5y OR f(x) = 0.5x - 0.5y - 1
sar  dx,1    ;
sar  cx,1    ;
jnc  skip    ; This jump handles pseudo-randomly switching between the two functions for x,
             ; based on if the previous value of x was odd or not.
sub  cx,122  ; Magic number, chosen since it provides sufficent 'randomness' for a filled in
             ; fractal and a good scale to the fractal. 102 and 130 also work.
skip:
mov  ah,1
int  0x16    ; Get keyboard state, zero flag will be set if no key has been pressed
mov  ax,0xC02; Set up AH for the draw pixel function when int 0x10 is executed,
             ; AL = color, CX = column, DX = row
jz   start   ; Loop if a key hasn't been pressed
ret  

আউটপুট:

ড্রাগন কার্ভ

একটি নিয়ন্ত্রণহীন কী টিপলে প্রোগ্রামটি প্রস্থান হতে পারে। এটি পুয়েট.নেটে ডিজায়ার দ্বারা ফায়ার কোরালের বাইরে রয়েছে।

দৈর্ঘ্য 52

এই প্রোগ্রামটি কিছুটা ডাবল বৈশিষ্ট্যযুক্ত, এটি কিছুটা x87 ভাসমান-পয়েন্ট সহ-প্রসেসর এবং স্ব-সংশোধনকারী কোড দেখায়।

B3 07 D9 E8 B1 11 DE 0E 32 01 E2 FA BE 0A 24 56 B1 09 DF 34 AC D4 10 
86 E0 05 30 30 50 E2 F5 44 B4 2E 50 89 E2 B4 09 CD 21 FE 06 03 01 4B
75 D2 CD 20 0A 00

রান করার সময়, প্রোগ্রামটি বেশ কয়েকটি গাণিতিক ধ্রুবককে আউটপুট দেয়:

1.00000000000000000
3.32192809488736235
1.44269504088896341
3.14159265358979324
0.30102999566398120
0.69314718055994531
0.00000000000000000

এগুলি হ'ল ওয়ান, লগ 2 (10), লগ 2 (ই), পাই, লগ 10 (2), লগ ই (2) এবং জিরো।

সমাবেশে:

org 100h

mov     bl,7         ;Counter for the total number of constants to print
start:
fld1                 ;Floating point constant to load on the FP stack,
                     ;start with 1 since it's op-code is the lowest

mov     cl,17        ;Multiply the constant by 10, 17 times to get the
mult:                ;printing part as an integer
fimul   word[ten]
loop    mult

mov     si,10+'$'*256;ASCII new line (10) and the end-of-string ($)
                     ;characters. These are used both as
push    si           ;a constant memory location, and stored to the
                     ;stack to format and printing

mov     cl,9         ;print 18 digits (9 pairs)
fbstp   [si]         ;store the integer part of the floating point
                     ;number on top of the FP stack as a packed
                     ;binary-coded decimal number (1 digit/nibble),
                     ;and then pop the number off the FP stack

convert:
lodsb                ;load a pair of packed digits

db 0xd4,16 ; AAM 16  ;ASCII Adjust For Multiply instruction using
                     ;non-standard base 16. This puts AL/16 in AH,
                     ;and AL%16 in AL, unpacking the digit pair.

xchg    ah,al        ;Swap the digit order
add     ax,'00'      ;Convert the digits to ASCII values
push    ax           ;Store digits on the stack
loop    convert

inc     sp           ;AX now holds the 1st 2 digits to print,
mov     ah,'.'       ;so to insert a decimal point, the 2nd digit
push    ax           ;is replaced with a '.', the stack pointer
                     ;is adjusted to overwrite 1 byte, and then
                     ;AX is pushed on the stack

mov     dx,sp        ;Load DX with the start of the print string
mov     ah,9         ;Load AH with the 'Print String' constant
int     21h          ;Call the 'Print String' interrupt to display
                     ;the constant

inc     byte[start+1];Self-modifying code - increment the load
                     ;floating point constant op-code to iterate
                     ;through all of them

dec     bx
jnz     start        ;Exit when all 7 constants have been printed
int     20h


ten: dw  10

X86 সিস্টেমে ভাসমান পয়েন্ট গণিতটি মূলত xচ্ছিক x87 কো-প্রসেসর দ্বারা পরিচালিত হয়েছিল, 486 সাল পর্যন্ত এটি একই চিপটিতে সরানো হয়নি। X87 এর পরিবর্তে একটি পৃথক স্থাপত্য ছিল, এটি স্ট্যাক-ভিত্তিক ছিল, 8 80 বিট রেজিস্টার উপলব্ধ। এটিতে বিভিন্ন রাউন্ডিং মোড, স্পষ্টতা এবং মাস্কেবল ব্যতিক্রমও সেট করা যেতে পারে।

এই প্রোগ্রামটি প্রসেসরে বেকড সাত ধ্রুবকের মানগুলি মুদ্রণ করে। এটি অদ্ভুত বলে মনে হতে পারে যে 0 এবং 1 এর মতো সরল ধ্রুবকগুলিতে নির্দেশের স্থানটি নষ্ট হবে তবে মনে রাখবেন যে মেমরি ছোট ছিল তখন নির্দেশিকা সেটটি তৈরি করা হয়েছিল এবং এই নির্দেশাবলী সমতুল্য ক্রিয়াকলাপগুলির চেয়ে সাধারণত 2 বাইট ছোট। প্রোগ্রামটি একটি অস্পষ্ট নির্দেশাবলী, এফবিএসটিপি -'স্টোর বিসিডি ইন্টিজার এবং পপ 'ব্যবহার করে। X86 বিকাশকালে, বিসিডি সংখ্যাগুলির ক্রিয়াকলাপগুলি বেশি সাধারণ ছিল এবং প্রোগ্রামটিতে ব্যবহৃত এএএম 'এএসসিআইআই অ্যাডজাস্ট ফর মাল্টিপল' নির্দেশনার মতো বিসিডি গণিতকে আরও সহজ করার জন্য x86 / x87 এর বেশ কয়েকটি নির্দেশ রয়েছে।

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

দৈর্ঘ্য 64

ম্যান্ডেলব্রট চ্যালেঞ্জের জন্য আমার এন্ট্রি ক্রস পোস্টিং , এমন একটি প্রোগ্রাম লেখা যেতে পারে যা কেবলমাত্র 64৪ বাইটে একটি 320x200 রঙের ম্যান্ডেলব্রোট ফ্র্যাকটাল প্রদর্শন করে।

B0 13 CD 10 C4 07 99 89 F8 B9 40 01 F7 F1 83 E8 64 FE CE 31 DB 31 F6 
89 F5 0F AF F3 01 F6 0F AF DB 70 19 0F AF ED 70 14 01 EB 70 10 29 EB
29 EB C1 FB 06 01 D3 C1 FE 06 01 C6 E2 DB 91 AA EB C6

সমাবেশে:

mov al,13h ; set up graphics mode 13
int 10h

les ax,[bx]; trick to set video memory

FillLoop:
cwd
mov ax,di  ; di is the current position on screen
mov cx,320 ; convert di int x,y screen coordinates
div cx     ; CX is the iteration counter, exit the loop if it hits
           ; zero before the value escapes.
sub ax,100 ; center the fractal vertically
dec dh     ; center the fractal horizontally

xor bx,bx
xor si,si

MandelLoop: ; Fairly standard Mandelbrot routine,
mov bp,si   ; exits if the values overflow
imul si,bx
add si,si
imul bx,bx
jo MandelBreak
imul bp,bp
jo MandelBreak
add bx,bp
jo MandelBreak
sub bx,bp
sub bx,bp

sar bx,6   ; We use fixed point math with the lowest 6
add bx,dx  ; bits being the fractional portion, so this
sar si,6   ; rescales the values after multiplication
add si,ax

loop MandelLoop

MandelBreak:
xchg ax,cx ; Write the escape itteraction as the color
stosb
jmp FillLoop

শেষ ফলাফলটি এই চিত্রটি:

ম্যান্ডেলব্রোট ফ্র্যাক্টাল

এই প্রোগ্রামটি ফ্র্যাক্টাল উত্পন্ন করতে স্থির-পয়েন্ট গণিত ব্যবহার করে, কারণ এতে কম বাইট লাগে। 16 বিট নিবন্ধের সর্বনিম্ন 6 বিটগুলি সংখ্যার ভগ্নাংশ হিসাবে বিবেচনা করা হয়, এবং মানগুলি গুণিত হওয়ার পরে পুনরুদ্ধার করা হয়।


7
পিপিসিজিতে দেখার মতো সমস্ত ভাষার মধ্যে আমি এটি আশা করিনি।
অ্যালেক্স এ।

23
কি দারুন. এটিকে মন্তব্য করার জন্য অন্যান্য অক্ষর যুক্ত করুন। কিন্তু গুরুতরভাবে. কি দারুন.
krs013

2
@ মিশেল ইডেনফিল্ড এটিই ডসবক্সের জন্য!
স্যার_লগসালোট

1
20 বাইট সিয়েরপিনস্কি খুব চিত্তাকর্ষক।
Qwr

1
আমি নিজেকে একটি ভাল প্রোগ্রামার হিসাবে বিবেচনা করি, তবে আমি যখন এটি দেখি তখন অবশ্যই আমার পরাজয় স্বীকার করতে হবে।
স্টিফান বিজজিটার

121

Haskell,

আপনি নীচে থেকে পড়তে চাইতে পারেন। কখনও কখনও আমি নীচে স্নিপেটগুলি আবার উল্লেখ করি তবে উচ্চতরগুলির সাথে কখনই না, যাতে এটি বুঝতে সহায়তা করে।

পাঠকরা যারা হাস্কেলকে চেনে না: আমি কি পরিষ্কার? আমি কখন পরিষ্কার হই না? আমি বলতে পারি না।

দৈর্ঘ্যের 86 স্নিপেট

আমাদের গাছের ডেটা কাঠামোর জন্য একটি ভাঁজযোগ্য উদাহরণ (স্নিপেট 23)। ভাঁজযোগ্য একটি প্রকারের শ্রেণি - যেমন একটি শ্রেণি (/ গ্রুপ) প্রকারের। এগুলি জাভাতে ইন্টারফেসের সমান্তরাল। এগুলি মূলত প্রকারভেদে সাধারণকরণ করে, ধরণের একত্রিত করে যা সাধারণ বৈশিষ্ট্যগুলি রয়েছে; উদাহরণস্বরূপ, এগুলি একসাথে যুক্ত করা যেতে পারে ( Monoid), পাত্রে ( Functor), পাঠ্য হিসাবে মুদ্রণ করা যেতে পারে ( Showযা আমরা ইতিমধ্যে showফাংশনে দেখা করেছি), ইত্যাদি so এই একটি ডাটা টাইপগুলিকে একত্রিত করে যা তালিকার মতো থাকে যাতে এগুলিকে পুনরাবৃত্তি করা যায় বা একটি তালিকাতে সমতল করা যায়।

এই স্নিপেটে, আমরা foldrসংজ্ঞাটি সংজ্ঞা দিয়ে সংজ্ঞায়িত করি , যা ডান থেকে বামে ডেটা টাইপের উপরে মূলত পুনরাবৃত্তি করে। এখন, আমরা সাধারণ প্রাক-লিখিত কোডের একগুচ্ছ ব্যবহার করতে পারি। প্রথমত, আমরা একটি সাহায্যকারী ফাংশন একটি Singleton গাছ পেতে, সব গোলমাল এড়াতে সংজ্ঞায়িত: s a = N E a E। এখন:

sum (N (s 3) 7 (N E 5 (s 8))     === 23
product (N (s 3) 7 (N E 5 (s 8)) === 840
toList (N (s 3) 7 (N E 5 (s 8))  === [3,7,5,8]

ইত্যাদি।

আমাদের গাছের ছবি এখানে:

7
| \
3  5
    \
     8

দৈর্ঘ্যের 70 স্নিপেট

primes=sieve[2..] where
 sieve(p:xs)=p:sieve(filter(\x->x`mod`p/=0)xs)

এটি একটি প্রধান চালনী!

(দ্রষ্টব্য: /=কি হয় !=অন্য ভাষায় হয়)

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

আবার, আমরা এখানে অসীম তালিকার সাথে কাজ করছি - তবে যতক্ষণ আপনার অসীম পরিমাণ প্রাইমগুলি গণনা করা প্রয়োজন না হয় ততক্ষণ গণনাটি থামবে।

take 4 primes === [2,3,5,7]

দৈর্ঘ্যের 68 স্নিপেট

অবশেষে, একটি কুইন!

main=do putStr s;print s where s="main=do putStr s;print s where s="

আপনার প্রথমবার এটি পড়ার সময়, আপনি ভাবতে পারেন যে এই কুইনের আউটপুটটি উদ্ধৃতি চিহ্নগুলি হারিয়ে ফেলবে, এবং আপনি কেন একবার putStrএবং একবার লিখবেন print? এটা একই শব্দ।

হাস্কেল-এ, putStrএমন একটি ফাংশন যা কেবল স্ট্রাউডে যে স্ট্রিংয়ের বিষয়বস্তু প্রিন্ট করে; print, যদিও, stdout জিনিস মুদ্রণ। সুতরাং, print 4এর সমতুল্য putStr "4\n", তবে putStr 4অযৌক্তিক - 4এটি একটি স্ট্রিং নয়! সুতরাং, যখন printএকটি মান পায়, এটি প্রথমে এটি একটি স্ট্রিংয়ে রূপান্তর করে এবং তারপরে সেই স্ট্রিংটি মুদ্রণ করে। স্ট্রিংগুলিতে জিনিসগুলিকে রূপান্তর করার উপায়টি হল কোডে আপনি যেভাবে লিখেছেন তা সন্ধান করা। সুতরাং, আপনি স্ট্রিং লিখতে হবে abcHaskell, কোড মধ্যে একটি স্ট্রিং "abc", তাই print "abc"আসলে কপি করে প্রিন্ট "abc", না abc

আমার এখন যথেষ্ট ভোট কত ভাগ্যবান, আমাকে এই জিনিসগুলি গল্ফ করতে হবে না

দৈর্ঘ্য 33 স্নিপেট:

main=go 0
go n=do print n;go(n+1)

গুরুত্বপূর্ণ বিষয়টি লক্ষণীয় হ'ল আমরা লুপটি ব্যবহার করি নি। হাস্কেল লুপ করে না। হাস্কেল পুনরাবৃত্তি করে। হাস্কেলের লুপ নেই। এটি এর থেকেও গভীর: হাস্কেলের নিয়ন্ত্রণ নিয়ন্ত্রণও নেই । কিভাবে, আপনি জিজ্ঞাসা করতে পারেন? ঠিক আছে, এটির কোনও দরকার নেই।

বিস্তারিত সহ। এই প্রোগ্রামটি 0 থেকে শুরু করে, পূর্ণসংখ্যার অসীম বর্ধমান ক্রম goপ্রিন্ট করে। প্রিন্টগুলি তার ইনপুট দিয়ে প্রিন্ট করে, তারপরে mainএটিকে কল করে 0

doহাস্কেলের একটি বিশেষ সিনট্যাকটিক শক্তি। এই দৃশ্যে এটি কেবল I / O ক্রিয়াগুলির সাথে একত্রিত হয়, যেমনটি >>করে (স্নিপেট 22 দেখুন)।

দৈর্ঘ্য 26 স্নিপেট:

map f=foldr(\x y->f x:y)[]

এটি mapফাংশনটি সংজ্ঞায়িত করে , সম্ভবত সবার সাথে পরিচিত, ব্যবহার করে foldr। লক্ষ্য করুন যে, যদিও আমরা ঘোষণা করা হয়নি mapএর ধরন, কম্পিউটার একরকম তার টাইপ করা হয় জানেন (a -> b) -> [a] -> [b], IE থেকে একটি ফাংশন দেওয়া aথেকে b, এবং একটি তালিকা aS, একটি তালিকা আসতে bগুলি।

কীভাবে জানল ?? ;-)

দৈর্ঘ্যের 25 স্নিপেট:

main=putStr"Hello World"

মানক হ্যালো ওয়ার্ল্ড। প্রকারগুলি নোট করুন: mainএর ধরণ রয়েছে IO ()এবং putStrএর প্রকার রয়েছে String -> IO ()(স্ট্রিং থেকে আই / ও ক্রিয়াকলাপগুলিতে কোনও ফাংশন যা কিছুই দেয় না)।

দৈর্ঘ্যের 23 স্নিপেট:

data T a=E|N(T a)a(T a)

এটি একটি গাছের একটি মানক সংজ্ঞা। জাভা, সি বা অন্য যে কোনও কিছুতে গাছ নির্ধারণ করার জন্য প্রয়োজনীয় সমস্ত লাইনগুলির চেয়ে কত সহজ।

(স্নিপেট 10 দেখুন)

আসুন এটি ভেঙে দিন:

data- এই ঘোষণাটি একটি ডেটা ধরণের ঘোষণা করে। T a- ধরণের উপাদানযুক্ত একটি গাছ a। এটিই আমরা নির্ধারণ করছি। =- প্রতিটি মান T aপাইপ দ্বারা পৃথক, নিম্নলিখিত যে কোনও হবে |E- সম্ভাব্য মানগুলির মধ্যে একটি T s- খালি গাছ। N (T a) a (T a)- একটি গাছের অন্যান্য সম্ভাব্য মান - একটি নোড। প্রতিটি নোডে বাম শিশু ( (T a)) উপাদান ( a) এবং ডান শিশু ( (T a)) থাকে।

দৈর্ঘ্যের 22 স্নিপেট:

main=putStrLn"y">>main

একটি হাস্কেল yesফাংশন। >>এমন একটি অপারেটর যা দুটি আই / ও ক্রিয়াকে একত্রিত করে এবং সিকোয়েন্স করে। এটির ধরণ রয়েছে >> :: IO a -> IO b -> IO b

mainI / O ক্রিয়া হিসাবে যা নিজেকে প্রথমে মুদ্রণ করে "y"এবং তারপরে যা কিছু mainনিজে করে তা হিসাবে পুনরায় সংজ্ঞায়িত করা হয়।

দৈর্ঘ্যের 18 স্নিপেট:

fix f=r where r=f r

একটি ভাল সংজ্ঞা fix। (স্নিপেট ১৪ দেখুন।) প্রথম সংজ্ঞাটি fix f = f(fix f)হ'ল সমস্যাটি হ'ল আমরা যখনই কল করি তখনই fix f fixস্মরণ হয় fix f, যা স্মরণ fix fকরে একই গণনার অন্তহীন অনুলিপি তৈরি করে। এই সংস্করণটি rফলাফল হিসাবে (ফলাফল) সংজ্ঞায়িত করে এটি সংশোধন করে ; যেমন f r = r। সুতরাং, আসুন সংজ্ঞায়িত করা যাক r = f r। এখন আমরা ফিরে r

দৈর্ঘ্যের 17 স্নিপেট:

f n=product[1..n]

এটি ফ্যাকটোরিয়াল সংজ্ঞায়নের কার্যকরী উপায়।

দৈর্ঘ্যের 16 স্নিপেট:

f n=(\x->x+x+x)n

(\x -> x + x + x)একটি ল্যাম্বডা (কেউ ভাবেন যে \এই চিঠির সাথে সাদৃশ্য রয়েছে)।

(\x -> x + x + x) nল্যাম্বডায় প্রয়োগ করা হয় n(এটি ঠিক একইরকম n + n + n)

fতিনটি ফাংশন (এছাড়াও f = (*3))

দৈর্ঘ্যের 15 স্নিপেট:

sum=foldl (+) 0

এটি sumএকটি ভাঁজ ব্যবহার করে ফাংশনটি সংজ্ঞায়িত করে । একটি ভাঁজ মূলত একটি সংগ্রহকারী সহ তালিকার উপাদানগুলির উপর একটি লুপ।
foldlআর্গুমেন্ট হিসাবে কিছু ফাংশন fএবং কিছু প্রাথমিক মূল্য xসংগ্রহকারী এবং একটি তালিকার জন্য নেয়xs । ফাংশনটি fপূর্বের সঞ্চয়ী মূল্য এবং তালিকার বর্তমান মান হিসাবে ইনপুট হিসাবে পাওয়া উচিত এবং এটি পরবর্তী সংযোজককে ফেরত দেয়।
তারপরে ভাঁজটি fপূর্বের সঞ্চয়ের উপর প্রয়োগ করে তালিকার মানগুলিতে পুনরাবৃত্তি করে এবং তারপরে শেষ সঞ্চালককে ফেরত দেয়।

ভাঁজগুলি সম্পর্কে ভাবার আরেকটি উপায় হ'ল 'সন্নিবেশ' এর মতো f তালিকার মানগুলির মধ্যে এবং একটি দিকের প্রাথমিক সংগ্রহকারীর সাথে এর মতো। উদাহরণস্বরূপ, foldl (*) 1 [4,2,5]মূল্যায়ন 1 * 4 * 2 * 5

দৈর্ঘ্য 14 স্নিপেট:

fix f=f(fix f)

yCombinator। এটি সাধারণত নামকরণ করা হয় fixকারণ এটি সমীকরণের স্থির অবস্থান খুঁজে পায় f x = x। মনে রাখবেন যেx = infinite loop কখনও কখনও সমাধানও করতে পারে, সুতরাং fix (\x -> x^2 + 5*x + 7)সমীকরণটি সমাধান করবে না x^2 + 4*x + 7 = 0বরং পরিবর্তে অসীম লুপটি ফিরিয়ে দেবে।

আপনি এটিও সর্বদা নোট করতে পারেন x = infinite loop হাস্কেলের অলসতার কারণে একটি সমাধান ।

এই সংস্করণটি একটি সময় এবং স্থান ফাঁস; আমরা এটি একটি দীর্ঘ স্নিপেটে পুনরায় সংজ্ঞায়িত করব।

দৈর্ঘ্য 13 স্নিপেট:

f=sum.map(^2)

এটি ফাংশনটিকে সংজ্ঞায়িত করে fযা একটি তালিকা দিয়েছে তার বর্গগুলির যোগফল প্রদান করে। এটা ফাংশন রচনা ফাংশন sum এবং ফাংশনmap(^2) , যেটা ঘুরে হয় ফাংশন map প্রয়োগ ফাংশন (^2) ( বর্গ ফাংশন ), যা ঘুরে একটি অধ্যায় ফাংশন ^ (বিভাগে স্নিপেট 2 এ চালু হয় এবং স্নিপেট 3 রচনা )।

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

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

দৈর্ঘ্য 10 স্নিপেট:

data B=T|F

এটি হেস্কেল বুলেইনের বিভিন্ন নাম সহ একটি সংজ্ঞা। বুলিয়ান ধরণের নামকরণ করা হয়েছে B
এই সংজ্ঞাটি দুটি নির্মাণকারীর পরিচয় দেয়: সত্য ( T) এবং মিথ্যা ( F)।
এই কোড স্নিপেট মূলত সংকলককে বলে যে প্রতিটি বুলিয়ান ( B) হয় হয় সত্য ( T) বা মিথ্যা ( F), বা অন্য কথায় B=T|F,।

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

দৈর্ঘ্য 9 স্নিপেট:

main=main

এই অযৌক্তিক প্রোগ্রামটি mainমূল হতে সংজ্ঞায়িত হবে । যেহেতু হাস্কেল অলস, সেই মানগুলি যা মূল্যায়নের জন্য অসীম লুপের প্রয়োজন হবে যদি আমরা তাদের প্রকৃত মান ব্যবহার না করি তবে নির্দ্বিধায় ব্যবহার করা যেতে পারে। আমাদের মতো অসীম লুপ ধারণ করে এমন মানগুলিকে main"বোতলস" বলা হয়।

একটি মজাদার ঘটনাটি হ'ল জিএইচসি হাস্কেল সংকলক এই ধরণের অসীম লুপগুলি সনাক্ত করতে পারে এবং চালানোর সময় একটি ক্যাচবল (!) ব্যতিক্রম ছুঁড়ে ফেলতে পারে।

দৈর্ঘ্য 8 স্নিপেট:

f(x:_)=x

এটি ফাংশনটি সংজ্ঞায়িত করে fযা একটি শূন্য খালি তালিকা দেওয়ার পরে তার মাথাটি ফিরিয়ে দেবে।

হাস্কেলের প্যাটার্নগুলি পাইথনের সিকোয়েন্সটি আনপ্যাকিংয়ের মতো, তবে সমস্ত ধরণের জন্য সাধারণীকরণ করা হয়েছে। প্যাটার্নগুলি হয় কোনও মানটিকে প্রত্যাখ্যান বা মিল করতে পারে এবং যদি এটি মেলে তবে ভেরিয়েবলকে মানগুলিতে বাঁধতে পারে।

এই স্নিপেটের নিদর্শনগুলি হ'ল:

  • _: যে প্যাটার্নটি কোনও কিছুর সাথে মেলে এবং কোনও ভেরিয়েবলকে আবদ্ধ করে।
  • x: যে প্যাটার্নটি কোনও কিছু বাঁধে এবং এটিকে ভেরিয়েবলের সাথে আবদ্ধ করে x
  • :: এই নিদর্শনটি শিশু নিদর্শনগুলিতে পায়, এটি হ'ল মাথার জন্য এবং একটি লেজের জন্য। যদি তালিকাটি খালি না থাকে তবে এটি তাদের মাথা এবং লেজের সাথে মেলে।

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

দৈর্ঘ্য 5 স্নিপেট:

x=2:x

ওহ, এই বিষয়ে আরও অনেক কিছু ব্যাখ্যা করার আছে।

প্রথমত, হাস্কেল অলস। এর অর্থ হ'ল সুব এক্সপ্রেসনগুলি কেবলমাত্র কঠোরভাবে প্রয়োজন হলে মূল্যায়ন করা হবে।

দ্রষ্টব্য: এই কোড স্নিপেট অ্যাসাইনমেন্টটি দেখায় না, তবে সংজ্ঞা দেয়। হাস্কেলের অ্যাসাইনমেন্ট নেই।

এই কোড স্নিপেট সংজ্ঞায়িত x, সম্পূর্ণরূপে গঠিত একটি অসীম তালিকা 2। সাধারণত অন্যান্য ভাষায় xএর আগে মূল্যায়ন করতে হয়2:x করতে হয় তবে হাস্কেলে আমরা এটি করতে পারি।

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

দৈর্ঘ্য 4 স্নিপেট:

2:[]

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

দৈর্ঘ্য 3 স্নিপেট:

f.g

হাস্কেলে, মানে .ফাংশন কম্পোজিশন। হাস্কেলকে "বিন্দু মুক্ত" স্টাইলে লেখা যেতে পারে, যা ফাংশন আর্গুমেন্টগুলির নামকরণ না করে পরিবর্তে এটি ব্যবহার করে চিহ্নিত করা হয়. ডেটা প্রবাহকে পরিচালনা অপারেটরটি ব্যবহার করে চিহ্নিত করা হয়।

দৈর্ঘ্য 2 স্নিপেট:

1-

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

দৈর্ঘ্য 1 স্নিপেট:

1

মধ্যে Haskell, 1হতে পারে উভয় Int, Float, Double, Wordএবং তাই ঘোষণা। আসলে, আপনি যে 1কোনও ধরণের সংস্করণ সংজ্ঞায়িত করতে এবং লিখতে পারেন নিখরচায়।
এটি জাভাস্ক্রিপ্ট, পাইথন এবং আরও অনেক ক্ষেত্রে করা হয়, তবে এর বিপরীতে এটি সম্পূর্ণ ধরণের সুরক্ষার সাথে সম্পন্ন হয়।

factoid:

মূলত, হাস্কেল কমিটি হ্যাশকেল বি কারির নামের পরে ভাষাটিকে "কারি" বলে অভিহিত করার সিদ্ধান্ত নিয়েছিল তবে কিছু নামার কারণ হতে পারে বলে নামটি পরিবর্তন করে হ্যাসকেলে রাখার সিদ্ধান্ত নিয়েছে। কেবল পরে তারা "পাস্কাল" এবং "ঝামেলা" এর সাথে হাস্কেলের মিল খুঁজে পেয়েছে!


আমি জানি না যে আমার কাছে স্ট্যাসটয়েডটির প্রতিস্থাপন করা উচিত যে হ্যাশকের স্ট্যান্ডার্ড লাইব্রেরিতে সর্বাধিক ফাংশন / অপারেটর রয়েছে যা অন্যান্য ফাংশনগুলি থেকে ফাংশন উত্পন্ন করে (এবং প্রযুক্তিগতভাবে প্রতি দুই বা ততোধিক পরামিতি ফাংশনটি এমন)। আমি কি?
গর্বিত হাসেল্লার

এটি একটি স্নিপেটে দেখান এবং ব্যাখ্যাটিতে এটি যুক্ত করুন।
মার্টিন ইন্ডার

f=0:1:zipWith(+)f(tail f) -- 25 chars, একটি ফাংশন যা ফিবোনাকির সংখ্যাগুলির একটি অলস-গণনাযুক্ত তালিকা দেয়।
chamini2

উঘ আমি একগুচ্ছ স্নিপেট যুক্ত করেছি এবং তারপরে আমার কম্পিউটারটি বন্ধ হয়ে যায়
গর্বিত হাস্কেলার

পুনঃটুইট আমি ব্যক্তিগতভাবে এটি কখনও করি নি, তবে আপনার যদি একবারে করার জন্য একটি বৃহত সম্পাদনা থাকে, আপনি সংরক্ষণ সহ কোনও বাহ্যিক দস্তাবেজে সম্পাদনা সম্পাদন করতে পারেন, তারপরে এটি সম্পূর্ণ হয়ে গেলে এটিকে আটকে দিন।
mbomb007

99

সি শার্প

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

আমি সাধারণ প্রয়োজনীয় বয়লারপ্লেটটিকে উপেক্ষা করব:

class Program { public static void Main(string[] args) { ... } }

দৈর্ঘ্য 1:

;

কমান্ডগুলি সি # তে সেমিকোলন দিয়ে শেষ করা হয়! একটি খালি লাইন পুরোপুরি বৈধ বাক্য গঠন।

দৈর্ঘ্য 5:

x=5f;

আপনি যখন সি # তে আক্ষরিক সংখ্যা নির্দিষ্ট করেন, সংকলকটি ধরে নিবে যে সেগুলি ইনট বা ডাবল (তাদের দশমিক পয়েন্ট রয়েছে কিনা তার ভিত্তিতে)। আপনি যদি একটি আক্ষরিক ভাসা ব্যবহার করতে চান তবে আপনার অবশ্যই নাম্বারে 'f' যুক্ত করে উল্লেখ করতে হবে, বা এটি রানটাইমে কাস্ট করা হবে, সামান্য ব্যয় হবে।

দৈর্ঘ্য 7 (বাইট):

s=@"
";

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

দৈর্ঘ্য 8:

()=>x=y;

এই অভিব্যক্তিটি একটি বেনামি ফাংশন। এটি এমন কোনও বস্তুর প্রত্যাবর্তন করে Actionযা কাছাকাছি যেতে পারে এবং একটি ফাংশনের মতো বলা যেতে পারে। বেনামে ফাংশনগুলি সেই সুযোগে উত্তরাধিকার সূত্রে উত্তরাধিকার সূত্রে প্রাপ্ত হয় এবং তারা যে কোনও জায়গায় যে কোনও স্থানীয় ভেরিয়েবলগুলি তাদের সাথে এই সুযোগে টান দেয়।

দৈর্ঘ্য 9:

(a)=>a.p;

এখানে অন্য একটি বেনামি ফাংশন যা প্যারামিটার এবং রিটার্ন মান ব্যবহার করে। এক্সপ্রেশনটি টাইপের একটি অবজেক্ট ফেরত দেয় Func(ফানক নিজেই প্রকারটি দেয় a.pYou আপনি Funcলিনকের সাথে ইন্টারফেস করতে অনেকগুলি ব্যবহার করবেন ।

দৈর্ঘ্য 10:

enm.Any();

এটি লিনকের সাথে আমাদের প্রথম পরিচয়! লিনক হ'ল এক্সটেনশন পদ্ধতির একটি সেট যা গণনাযোগ্য (আইইনিউরেবল ইন্টারফেস বাস্তবায়ন) - যেমন Arrayএবং এর মতো যে কোনও অবজেক্টে কল করা যেতে পারে List। অগণিত অলস মূল্যায়নের নিয়োগ দেয়: এটি সংগ্রহের সামগ্রিকভাবে না জেনে এক সময়ে একটি আইটেম সংগ্রহ করে - এটি এমনকি অসীমও হতে পারে!

এটি যেখানে Anyআসে - এটি trueযদি ফিরে আসে তবে কমপক্ষে 1 টি আইটেম থাকে returns পুরো দৈর্ঘ্য গণনা করার চেয়ে অনেক ভাল।

দৈর্ঘ্য 11:

var a=1.5f;

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

দৈর্ঘ্য 15:

yield return 0;

এখানে একটি ক্রেজিট স্টেটমেন্ট আপনার সাথে কম পরিচিত হতে পারে's আপনি জানেন যে আইনিউনামেবল উত্তরাধিকারসূত্রে অবজেক্টগুলি অঙ্কনীয় হতে পারে তবে আপনি কি জানতেন যে ফাংশনগুলি গুণনীয় হতে পারে? রিটার্ন টাইপের কোনও ফাংশন ঘোষণা করুন IEnumerableএবং এটি yield returnআপনার যতবার চান ততবার করুন। আপনি যখন ফাংশনটিতে একজন এনুমरेटर পেয়েছেন, প্রতিটি কলটিতে GetNextপ্রোগ্রামটি পরবর্তী কোড পর্যন্ত সমস্ত কোড সম্পাদন করে, yield returnসেই মানটি ফেরত দেয় এবং তারপরে আবার এটিকে অগ্রসর না করা পর্যন্ত বিরতি দেয়। আপনি yield breakপুনরাবৃত্তি শেষ করতে ব্যবহার করুন ।

দৈর্ঘ্য 16:

[Obsolete]int a;

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

দৈর্ঘ্য 17

c.Count(t=>t==3);

এখানে একটি সহজ গল্ফ পদ্ধতি। প্রদত্ত Funcযে গণনীয় একটি উপাদান মানচিত্র cথেকে bool, এটা উপাদানের সংখ্যা ফেরৎ cযা যে জন্য Funcফেরৎ true। লুপ লেখার চেয়ে অনেক সুন্দর।

দৈর্ঘ্য 18:

foreach(T t in c);

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

দৈর্ঘ্য 19

c.Select(t=>t.a/2);

ক্রিয়ামূলক প্রোগ্রামিং অনুরাগীদের জন্য এটি আপনার 'মানচিত্র' ফাংশন। নির্বাচন করা একটি Funcগণনার প্রতিটি উপাদানকে কিছু স্বেচ্ছাসেবী রূপান্তর (একটি পাস দ্বারা সংজ্ঞায়িত ) সম্পাদনের জন্য একটি দুর্দান্ত সংক্ষিপ্ত উপায় । এটি এমন একটি অনুমানযোগ্য ফিরিয়ে দেয় যা আপনি যখন এটি পুনরাবৃত্তি করবেন তখন "রূপান্তরিত" উপাদানগুলিকে ছড়িয়ে দেবে।

দৈর্ঘ্য 21

Console.Write("Hi!");

এই লাইনটি স্টাডাউটকে কিছু পাঠ্য লিখেছিল এবং সম্ভবত সি # বেশি গল্ফ করার জন্য ব্যবহৃত হয়নি এমন অন্যতম প্রধান কারণ!

দৈর্ঘ্য 23

typeof(T).GetMethods();

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

দৈর্ঘ্য 25

from t in c select t.a/2;

এটি কি এসকিউএল? সি # কোডে? চমত্কার বন্ধ. এই অভিব্যক্তিটি দৈর্ঘ্যের 19-এর মতো একই কাজ করে।

দৈর্ঘ্য 27

for(var l;;l=new object());

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

দৈর্ঘ্য 29

var e=Enumerable.Range(0,99);

Enumerable.Rangeএকটি সম্ভাব্য হ্যান্ডেল গল্ফ ফাংশন। এটি এমন একটি কাঠামো ফেরত দেয় যা গণনা করা যায় এবং প্রতিটি সংখ্যাকে যথাযথভাবে নির্ধারিত পরিসরে ফল দেয় yield দ্বিতীয় প্যারামিটারটি একটি সূচি নয়, একটি গণনা।

দৈর্ঘ্য 31

public int pr{get;private set;}

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

দৈর্ঘ্য 32

public static void m(this T o){}

এই স্নিপেট একটি সি # বৈশিষ্ট্য দেখায় যা এপিআই ডিজাইনের জন্য দুর্দান্ত। thisস্ট্যাটিক পদ্ধতির প্রথম প্যারামিটারে মডিফায়ার প্রয়োগ করে , সেই পদ্ধতিটি "এক্সটেনশন" পদ্ধতিতে পরিণত হয়। এটি একবার ঘোষিত হয়ে গেলে, T.mএখন টাইপ টির যে কোনও অবজেক্টে কল করা যেতে পারে যদিও এটি আসলে টি এর একটি পদ্ধতি ছিল This এটি ব্যবহার করে কোনও বিদ্যমান শ্রেণিতে নতুন কার্যকারিতা যুক্ত করতে পারে, পরিবর্তিত হওয়া বা এমনকি এর উত্স কোড অ্যাক্সেস না করেই function

দৈর্ঘ্য 38

int f(int a,ref int b,out int c){c=0;}

এই পদ্ধতিতে আপনার সি # তে থাকতে পারে বিভিন্ন ধরণের প্যারামিটার পাসিং শোকেস করে। অপরিবর্তিত প্যারামিটারগুলি মান দ্বারা পাস হয় । প্রিফিক্সযুক্ত প্যারামিটারগুলি refরেফারেন্স দ্বারা পাস করা হয়: আপনি তাদেরকে একটি সম্পূর্ণ নতুন অবজেক্ট বরাদ্দ করতে পারেন এবং তারা এটিকে পদ্ধতিটির বাইরে রেখে দেবে। উপসর্গযুক্ত প্যারামিটারগুলি outঅতিরিক্ত রিটার্ন মানগুলির মতো: আপনার পদ্ধতিতে তাদের একটি মান নির্ধারণ করা প্রয়োজন এবং সেগুলি রেফ প্যারামিটারের মতোই ফিরে আনা হয়।

দৈর্ঘ্য 42

Console.Write("It is \{DateTime.Now()}.");

স্ট্রিং ইন্টারপোলেশন ব্যবহার করে যখন আপনাকে এসেম্বলড স্ট্রিংগুলি আউটপুট দিতে হয় তখন নতুন সি # 6 স্ট্যান্ডার্ড আপনাকে কিছু অক্ষর বাঁচাতে পারে। এই বৈশিষ্ট্যটি আপনাকে স্ট্রিং আক্ষরিক অভ্যন্তরে কোঁকড়া ধনুর্বন্ধনীগুলিতে কোনও অভিব্যক্তি লেখার অনুমতি দেয় এবং স্ট্রিংটি স্বয়ংক্রিয়ভাবে রানটাইমের সময় এই অভিব্যক্তির মানগুলির সাথে একত্রিত হবে।

দৈর্ঘ্য 48

IEnumerable f(){for(int a=0;;)yield return a++;}

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

দৈর্ঘ্য 56

int p{get{return mP;}set{mP=Math.Max(value,0);}};int mP;

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

দৈর্ঘ্য 65

int v;public static implicit operator int(Program o){return o.v;}

এই বৈশিষ্ট্যটিকে অন্তর্নিহিত castালাই বলা হয়। এটি এক ধরণের এক্সটেনশন পদ্ধতির মতো এটি স্থির কোড যা একটি নির্দিষ্ট শ্রেণিতে পরিচালিত হয় (স্নিপেট 32 দেখুন)। তবে, অন্তর্ভুক্ত castালাই এটি কল করে ব্যবহার করা হয় না - এটি কেবল কোনও Programঅবজেক্টকে পূর্ণসংখ্যা হিসাবে বিবেচনা করে ব্যবহার করা হয় (উদাঃ int i=new Program())। আপনি যখন এটি করেন, অন্তর্নিহিত কাস্টের কোডের উপর ভিত্তি করে অবজেক্টটি আপনি যেভাবে ব্যবহার করছেন তেমন নীরবে রূপান্তরিত হবে। রূপান্তরগুলির ফলে যখন কোনও তথ্য হারিয়ে না যায় তখন কেবল অনুশীলন তা করতে বলে।


1
এই চরিত্রগুলি দিয়ে আপনি কী করতে সক্ষম হবেন তা দেখুন ... ;-)
গর্বিত হাসেল্লার

9
আমি বলব যে এটি সি এর চেয়ে জাভা এর কাছাকাছি, প্রকৃতপক্ষে
গর্বিত হাস্কেলারের

উল্লেখযোগ্য। আমি মনে করি আমাদের কাছে কিছু লিঙ্ক করার যথেষ্ট আছে - আজ রাতে আসছেন!
বিএমাক 20'15

পাবলিক স্ট্যাটিক ইনপিলিট অপারেটর ইন (মাই ক্লাস ও) {রিটার্ন o.objVal;} // 65। এই কোড সহ, এই লাইনটি বৈধ: MyClass o1 = নতুন মাইক্র্লাস (10); int o2 = o1; // o2 এখন 10। msdn.microsoft.com/en-us/library/85w54y0a.aspx
জুলুকি

আরও স্নিপেটস দয়া করে
সাইয়েস

98

জাভা


দৈর্ঘ্যের 44 স্নিপেট

Object a=System.out.append("Hello, World!");

প্রিন্ট Hello, World!করুন STDOUT।

দৈর্ঘ্যের 43 স্নিপেট

float[][][][][]a=new float[5][3][7][2][10];

a10 টি অ্যারে রয়েছে যার প্রতিটিটিতে 2 টি অ্যারে রয়েছে যার প্রতিটিটিতে 7 টি অ্যারে রয়েছে যার প্রতিটিতে 3 টি অ্যারে রয়েছে যার মধ্যে 5 floatটি রয়েছে।

দৈর্ঘ্যের 42 স্নিপেট

interface A{static void main(String[]a){}}

একটি সম্পূর্ণ প্রোগ্রাম। যেহেতু একটিতে সমস্ত interfaceকিছু সহজাতভাবে হয় তাই publicআমরা publicমূল পদ্ধতিটি থেকে শব্দটি বাদ দিতে পারি ।

দৈর্ঘ্য 36 স্নিপেট

class A{class B extends A{B.B.B b;}}

Aএকটি অভ্যন্তর শ্রেণি আছে B। এর অর্থ আমরা একটি পরিবর্তনশীল প্রকারের ঘোষণা করতে পারি A.B

তবে Bএটি একটি সাবক্লাস A, যার অর্থ এটির পদ্ধতি, ক্ষেত্র এবং অভ্যন্তর শ্রেণীর সমস্ত রয়েছে A। সুতরাং, আমরা প্রকারটিও উল্লেখ করতে পারি B.B

এই কোডটিতে, আমরা এটি আরও একধাপ এগিয়ে Bনিয়েছি এবং একটি উদাহরণ ভেরিয়েবল টাইপ করি B.B.B

নৈতিক: এসও-তে নিম্নলিখিত গরম প্রশ্নগুলি আপনাকে অর্থহীন, কৌশলগুলি অনেক আকর্ষণীয় শিখিয়ে দিতে পারে।

দৈর্ঘ্যের 35 স্নিপেট

l.stream().map("a"::equals).count()

যদি lস্ট্রিংগুলির একটি তালিকা হয় তবে এটি আমাদের জানায় যে এর মধ্যে কতটি সমান "a"

দৈর্ঘ্যের 34 স্নিপেট

public static void main(String[]a)

কোনও প্রোগ্রামের প্রধান পদ্ধতির পদ্ধতি স্বাক্ষর। আরও 11 টি চরিত্র এবং আমরা একটি সম্পূর্ণ প্রোগ্রাম তৈরি করতে পারি!

দৈর্ঘ্যের 33 স্নিপেট

enum D {NORTH, EAST, SOUTH, WEST}

NORTH, EAST, SOUTH, এবং WESTধরনের সমস্ত ধ্রুবক হয় D

দৈর্ঘ্যের 32 স্নিপেট

Files.readAllBytes("hello.txt");

byte[]সামগ্রীর একটি ফেরত দিয়ে একটি সম্পূর্ণ ফাইল পড়ে ।

দৈর্ঘ্যের 31 স্নিপেট

new String(new char[]{'h','i'})

সমান "hi""চাবিটি নষ্ট হয়ে গেলে দরকারী ।

দৈর্ঘ্যের 30 স্নিপেট

new JFrame().setVisible(true);

একটি নতুন দৃশ্যমান ফ্রেম তৈরি করে, যা আপনি অন্যান্য উপাদানগুলিকে এতে স্থাপন করতে পারেন।

দৈর্ঘ্যের 29 স্নিপেট

throws ClassNotFoundException

প্রত্যেক পদ্ধতি যা কল এই একটি ব্যবহার করতে বাধ্য করে try- catchব্লক, বা অন্য ত্রুটি আপ গাদা পাস। চেক করা ব্যতিক্রম জাভা ডিজাইনারদের মধ্যে অন্যতম বিতর্কিত সিদ্ধান্ত।

দৈর্ঘ্যের 28 স্নিপেট

int f(int x){return f(x-1);}

এই ফাংশন চিরকাল চলবে না; প্রকৃতপক্ষে, একটি সাধারণ কম্পিউটারে এটি এক সেকেন্ডেরও কম সময় নেয়। ধন্যবাদ, স্ট্যাক ওভারফ্লো

দৈর্ঘ্যের 27 স্নিপেট

Object a=new String[]{"a"};

স্ট্রিংয়ের একটি নতুন অ্যারে তৈরি করে।

দৈর্ঘ্যের 26 স্নিপেট

Object.class.newInstance()

নতুন তৈরি করে Object

দৈর্ঘ্যের 25 স্নিপেট

((Supplier)()->-~0).get()

হার্ড-কোডিং ধ্রুবক এড়ানো ভাল to এটি 1ব্যতীত অন্য কোনও ধ্রুবক না ব্যবহার করে মান পাওয়ার একটি অবজেক্ট-ওরিয়েন্টেড উপায় 0

দৈর্ঘ্যের 24 স্নিপেট

(Function<Long,?>)x->x+1

উত্তরসূরি ফাংশন।

দৈর্ঘ্যের 23 স্নিপেট

l.removeIf(x->x%10==0);

যদি lপূর্ণসংখ্যার তালিকা থাকে তবে এটি 10 ​​দ্বারা বিভাজ্য সমস্ত মান সরিয়ে দেয়।

দৈর্ঘ্যের 22 স্নিপেট

int i=(new int[7])[5];

সাতটি পূর্ণসংখ্যার একটি নতুন অ্যারে তৈরি করে এবং পঞ্চম উপাদানটি পায়।

দৈর্ঘ্যের 21 স্নিপেট

Arrays.asList(2L,"a")

এই উপাদানগুলির সাথে একটি অ্যারেলিস্ট তৈরি করে।

দৈর্ঘ্যের 20 স্নিপেট

System.out.print(s);

প্রিন্ট s

দৈর্ঘ্যের 19 স্নিপেট

import java.util.*;

মত ক্লাস সংক্ষিপ্ত ব্যবহারকে মঞ্জুর List, Map, Scanner, Timerএবং, Random

দৈর্ঘ্যের 18 স্নিপেট

Math.addExact(x,y)

দুটি পূর্ণসংখ্যার যোগ করে xএবং y। যদি ওভারফ্লো হয় তবে পদ্ধতিটি একটি ভুল উত্তর দেওয়ার পরিবর্তে একটি ব্যতিক্রম ছুঁড়ে।

দৈর্ঘ্যের 17 স্নিপেট

Double.MIN_NORMAL

প্রকারের ক্ষুদ্রতম ধনাত্মক মান double, যেখানে তাত্পর্যটির শীর্ষস্থানীয় বিট 0 হয়।

দৈর্ঘ্যের 16 স্নিপেট

System.in.read()

কনসোল থেকে একটি অক্ষর পড়ে।

দৈর্ঘ্যের 15 স্নিপেট

Long.reverse(x)

এর বাইনারি উপস্থাপনায় বিটগুলি বিপরীত করে x

দৈর্ঘ্যের 14 স্নিপেট

int x=050+120;

xএখন 160, যেহেতু যে কোনও কিছু দিয়ে শুরু করে 0তাকে অষ্টাল হিসাবে ধরা হয়।

দৈর্ঘ্যের 13 স্নিপেট

private C(){}

একটি প্রাইভেট কনস্ট্রাক্টর অন্যান্য ক্লাসগুলিকে তা ইনস্ট্যান্ট করতে বাধা দেয়। এই প্যাটার্নটি অন্যদের মধ্যে Systemএবং Mathশ্রেণি দ্বারা ব্যবহৃত হয় । একটি বেসরকারী নির্মাণকারীও সিঙ্গলটন প্যাটার্ন প্রয়োগ করতে ব্যবহার করা যেতে পারে।

দৈর্ঘ্যের 12 স্নিপেট

static class

অনেকগুলি প্রোগ্রামার দ্বারা সম্মুখীন একটি সমস্যার সমাধান - একটি বদ্ধ বাইরের শ্রেণি ছাড়াই অভ্যন্তর শ্রেণি তৈরির অনুমতি দেয় ।

দৈর্ঘ্যের 11 স্নিপেট

throw null;

এটি প্রায়শই একটি নিক্ষেপ করা প্রয়োজন NullPointerException, তবে এটি বেশ শব্দযুক্ত। এটি অনেক সহজ বিকল্প।

দৈর্ঘ্যের 10 স্নিপেট

int[]a,b[]

দুটি ভেরিয়েবল সংজ্ঞা দেয়: aএবং baটাইপ int[]এবং bটাইপ হয় int[][]

দৈর্ঘ্য 9 স্নিপেট

switch(x)

, একটি জায়গা যায় মান উপর নির্ভর করে x

দৈর্ঘ্য 8 স্নিপেট

break a;

লেবেলযুক্ত ব্লকটি ভেঙে যায় a

দৈর্ঘ্যের 7 স্নিপেট

goto x;

gotoশব্দ সি, সি ++, ও জাভা সংরক্ষিত। যদি xকোনও লেবেল হয় তবে এই কোডটি যথাযথ লেবেলে প্রোগ্রামটি প্রেরণ করে - সি এবং সি ++ এ। তবে এটি জাভা, এটি একটি রহস্যময় ট্রিগার করে RuntimeException। আসলে, gotoজাভাতে কীওয়ার্ডটি ব্যবহার করার কোনও উপায় নেই ।

দৈর্ঘ্যের 6 টি স্নিপেট

\u003b

একটি বিবৃতি শেষ। জাভা অদ্ভুত

দৈর্ঘ্য 5 স্নিপেট

a-=-a

এর অবহেলা aবিয়োগ করে দ্বিগুণ ।

দৈর্ঘ্য 4 স্নিপেট

a&=b

মান নির্ধারণ করে a, bitwise প্রয়োজন এবং এর aএবং b

দৈর্ঘ্য 3 স্নিপেট

...

অ্যারেতে একত্রিত করে যে কোনও সংখ্যক আর্গুমেন্ট।

দৈর্ঘ্য 2 স্নিপেট

<>

আপনার সম্ভবত কী জেনেরিক প্রকারটি বোঝানো হয়েছে তা নির্ধারণ করতে সংকলকটিকে মঞ্জুরি দেয়। খুব আন জাভা-মত।

দৈর্ঘ্য 1 স্নিপেট

@

পদ্ধতি এবং ক্লাস সম্পর্কে অতিরিক্ত তথ্য দেখানোর অনুমতি দেওয়ার জন্য একটি টীকা নির্দেশ করে।

Factoid

জাভাতে, অসীম লুপগুলি মাঝে মধ্যে সংকলক ত্রুটি সৃষ্টি করে। উদাহরণস্বরূপ, while(true);পদ্ধতিটি প্রস্থান না করে লুপটি শেষ করা যাবে না, তারপরে যে কোনও কোড একটি "অলঙ্ঘনযোগ্য বক্তব্য" ত্রুটি ট্রিগার করবে। @ অপ্টিমাইজার হিসাবে উল্লেখ করা হয়েছে, কেবল কয়েকটি অসীম লুপগুলি এইভাবে ধরা পড়বে।


5
জাভাতে, অসীম লুপগুলি সংকলক ত্রুটি সৃষ্টি করে না। এটি আপনার আইডিই যা তাদের সনাক্ত করে এবং একটি ত্রুটি তৈরি করে। জাভাতে কেবল অ্যাক্সেসযোগ্য বক্তব্যগুলির ধারণা থাকে, সুতরাং while(true);আপনার কোডে যদি কিছু থাকে তবে সেই লাইনের পরে কোনও কিছু পৌঁছনীয় নয় এমন স্টেটমেন্টের একটি সংকলন ত্রুটি ফেলে দেবে। এই জাতীয় বিবৃতি সনাক্ত করার পিছনে যুক্তিটি অত্যন্ত কঠোর, সুতরাং এটি কোনও উপায়ে সমস্ত অসীম লুপকে চিনতে পারে না
অপ্টিমাইজার

4
আপনি সবেমাত্র নিচে ভোট পেয়েছেন, আমি অনুমান করি এর অর্থ হ'ল আপনাকে একটি স্নিপেট সরিয়ে ফেলতে হবে! ;) (ডাউনভোটটি "জাভা ইজ বিস্মৃত" এর জন্য ছিল)
সাইমন ফোরসবার্গ

1
দেখে মনে হচ্ছে স্নিপেট # 36 পুনরাবৃত্তিযোগ্য এবং অনির্দিষ্টকালের জন্য বাড়ানো যেতে পারে: class A{class B extends A{B.B.B.B.B.B.B b;}}এখনও সংকলন করে।
ন্যাটিক্স

3
আপনাকে একটি সম্পূর্ণ প্রোগ্রাম তৈরি করতে সহায়তা করার জন্য উত্সাহিত;)
durron597

1
But it Java, [goto] triggers a mysterious RuntimeExceptionভুল। gotoএমনকি সংকলন না।
dorukayhan

93

পাইথন

এখন আপনার সুবিধার জন্য নতুন দিয়ে শুরু! প্রথম দিকে প্রথম 30 দিয়ে শুরু করে দৈর্ঘ্যের 30 টি পড়তে ইতিহাসের পুনর্বিবেচনায় যান।

কারও কাছে যদি পরামর্শ থাকে তবে নির্দ্বিধায় মন্তব্য করুন।

দৈর্ঘ্য 52:

i=0
while s[i-n:]:print(' '*n+s)[i:n+i];i+=1;i**7**7

ভুয়া মার্কি পাঠ্য চ্যালেঞ্জটিতে আমার প্রবেশ থেকে নেওয়া । sএবং nসময় আগে একটি স্ট্রিং এবং একটি পূর্ণসংখ্যা সেট করা প্রয়োজন। আমি যে ফ্রি পাইথন 2 ইন্টারপ্রেটারটি ব্যবহার করছিলাম এটি আসলে ভাল কাজ করে না, তাই আমি চারপাশে বন্ধনী যুক্ত করেছি(' '*n+s)[i:n+i] এবং আপনি দেখতে পাচ্ছেন যে এটি পাইথন 3 দোভাষীতে এখানে চলছে ।

দৈর্ঘ্য 43:

#-*-coding:rot13-*-
cevag h"Una fubg svefg"

পাইথনে আপনি একটি নির্দিষ্ট কোডেক দিয়ে উত্সটি এনকোড করতে সক্ষম। এটি দেখায় যে কীভাবে উত্সটি রোট 13-এ লেখা যায়। সাধারণ সিনট্যাক্স হল: # -*- coding: <codec-name-goes-here> -*-

এখানে এটি অনুবাদ করা হয়েছে:

#-*-coding:rot13-*-
print u"Han shot first"

uনির্দিষ্ট করে স্ট্রিং আক্ষরিক পর ইউনিকোড স্ট্রিং। আপনার স্ট্রিংগুলি রট 13 এ থাকা চাইলে এটি প্রয়োজনীয়, অন্যথায় উত্সের প্রতিটি স্ট্রিং এনক্রিপশন সত্ত্বেও সহজেই পঠনযোগ্য। বিকল্পভাবে, আপনি .encode("Rot13")প্রতিটি স্ট্রিংয়ের পরে ব্যবহার করতে পারেন (এটিতেও রট 13 ব্যবহার করতে ভুলবেন না)) মতে এই নিবন্ধ কিছু বিকল্প এনকোডিংগুলি হ'ল "বেস 64", "ইউউনকোড", "জেলিবি" বা "বিজে 2" ″

দৈর্ঘ্য 33:

import cmath
print cmath.sqrt(-1)

জটিল (কাল্পনিক) সংখ্যার জন্য এটি পাইথনের মডিউল । এই মুদ্রণগুলি 1j, যেহেতু পাইথন ইঞ্জিনিয়ারিং স্ট্যান্ডার্ডের সাথে সম্মতি দেয় এবং jকাল্পনিক ইউনিট হিসাবে ব্যবহার করে, যদিও আমি পছন্দ করি iযা গণিতে বেশি ব্যবহৃত হয়, এবং কোয়ার্ট্রিনগুলির জন্য ব্যবহার করা হয় jএবং kপাশাপাশি , তবে আমি ডিগ্রি করি। বাগ / পরিবর্তন অর্ডারটি এখানে পড়ুন (এটি পরিবর্তিত হবে না)।i

দৈর্ঘ্য 30:

f=lambda n:n*f(n-1)if n else 1

এখন আমরা পুনরাবৃত্তি এবং তার্নারি যদি অন্যথায় ব্যবহার করে আমাদের নিজস্ব ফ্যাক্টরিয়াল ফাংশন সংজ্ঞায়িত করি! আমি যতদূর জানি এটি পাইথনে যেমন হয় তেমন গল্ফ হয়। এটিও এইভাবে লেখা যেতে পারে f=lambda n:n and f(n-1)*n or 1:, পাইথনের বুলিয়ান অপারেটরগুলির একটি দম্পতি প্রদর্শন করা (এবং 30 টি অক্ষরেও করা হয়েছে the) lambdaসিনট্যাক্স সম্পর্কিত তথ্যের জন্য দৈর্ঘ্যের 15 টি স্নিপেট দেখুন ।

দৈর্ঘ্য 29:

import math
math.factorial(7)

ফিরে আসার 7 এর ফ্যাক্টরিয়াল সন্ধান করে 5040

দৈর্ঘ্য 25:

import math
print math.pi

পাইথনের গণিত মডিউলটি অনেক দরকারী কার্যকারিতা এবং ধ্রুবক সরবরাহ করে। এখানে পিআই রিটার্নস 3.14159265359। (উপরের কোডে, আমি একটি লাইনটিকে একটি চরিত্র হিসাবে গণনা করেছি))

দৈর্ঘ্য 24:

f=lambda y:lambda x:x**y

এটি বন্ধের উদাহরণ। কলিং cube = f(3)একটি কিউবিক ফাংশন তৈরি করবে যা এর সাথে আবার print cube(24)মুদ্রণ সহ বলা যেতে পারে 13824

দৈর্ঘ্য 19:

print"Hello World!"

অবশেষে, কিছু বেসিক আউটপুট মুদ্রণের জন্য পর্যাপ্ত জায়গা! স্থানটি এখানে প্রয়োজনীয় নয়, কারণ উদ্ধৃতিগুলি এবং বন্ধনীগুলিও ডিলিটর। এটি কেবল পাইথন 2 এ কাজ করবে, যেহেতু পাইথন 3 printফাংশনটিকে অন্য কোনও ফাংশনের মতো কল করতে পরিবর্তন করেছে । পাইথন 3 এ, ব্যবহার করুন print("Hello World!")। মুদ্রণ ফাংশন এবং পাইথন 2 এবং 3 এর মধ্যে পার্থক্য সম্পর্কে আরও তথ্যের জন্য, পাইথন 3.0 এ নতুন কী রয়েছে তা দেখুন ।

দৈর্ঘ্য 16:

[x*3 for x in l]

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

দৈর্ঘ্য 15:

import this #:)

এটি আসলে দৈর্ঘ্যের ১১ টি স্নিপেট, তবে আমি বুঝতে পেরেছিলাম আমি পাইথনের (দুর্দান্ত) ইস্টার ডিম প্রদর্শন করতে ভুলে গিয়েছি ! এই মডিউলটি আমদানি করা পাইথনের জেন প্রিন্ট করে (ফ্যাকটোড দেখুন)) আকর্ষণীয় সত্য: মডিউলthis.py ROT13 মধ্যে এনকোড করা হয়েছে, যা আমি আশা পরে বৈশিষ্ট্য হবে।

দৈর্ঘ্য 14:

lambda x:x**.5

এটি lambdaফাংশন আক্ষরিক জন্য পাইথনের সিনট্যাক্স ব্যবহার করে বর্গমূলের ফাংশনটি সংজ্ঞায়িত করে । পাইথনের ফাংশন লিটারেলগুলিতে কেবল বিবৃতি থাকতে পারে, বিবৃতি থাকতে পারে। এই ল্যাম্বদা একটি পরিবর্তনশীল হিসাবে নির্ধারিত হতে পারে, একটি ফাংশনে পাস করা হয়েছিল, বা ইন-লাইনে মৃত্যুদন্ড কার্যকর করা হয়েছিল (lambda x:x**.5)(9), যা প্রত্যাবর্তন করে 3.0। স্কোয়ার রুটের জন্য এক্সপোস্টার ব্যবহার করা মডিউলটিতে sqrtফাংশন আমদানির বিকল্প math

দৈর্ঘ্য 13:

1 if x else 0

অপারেটর যদি এটি পাইথনের ত্রিবারির উদাহরণ। বুলিয়ান অপারেশনগুলির সাহায্যে কোডারদের ম্যানুয়ালি এটি প্রয়োগ করা থেকে নিরুৎসাহিত করার জন্য এটি পাইথন 2.5 তে যুক্ত করা হয়েছিল। এখানে, 1যদি xমূল্যায়ন করা হয় তবে ফেরত দেওয়া হয় True, অন্যথায় 0ফিরে আসে।

দৈর্ঘ্য 12:

s=input(">")

এটি >প্রম্পট পাঠ্যের জন্য মুদ্রণ করবে এবং ব্যবহারকারীকে একটি মান ইনপুট করার অনুমতি দেবে। পাইথন 2 যেকোনো মান সন্নিবেশিত করে তা ব্যাখ্যা করে, সুতরাং যে কোনও স্ট্রিংয়ের উদ্ধৃতি প্রয়োজন। পাইথন 3 এটি পরিবর্তন করেছে, যাতে প্রবেশ করা ইনপুটটি স্বয়ংক্রিয়ভাবে ব্যাখ্যা করা যায় না। পাইথন 2 এ এটি ব্যাখ্যা না করে ইনপুট প্রবেশ করতে, ব্যবহার করুন raw_input()। পাইথন 2 এ, input()সমান eval(raw_input())

দৈর্ঘ্য 11:

eval("2e3")

2e3ভাসমান 2 এক্স 10³ এর জন্য বৈজ্ঞানিক স্বরলিপি ³ evalফাংশন ব্যাখ্যা করে এবং একটি অভিব্যক্তি হিসাবে কোন স্ট্রিং মূল্যায়ন করে। এই ক্ষেত্রে, এর আক্ষরিক 2e3বা ব্যবহারের মতো একই ফলাফল রয়েছে float("2e3")। এটি ফিরে আসে 2000.0

দৈর্ঘ্য 10:

range(013)

এই ফাংশনটি 0অষ্টাল মান থেকে পূর্ণসংখ্যার একটি তালিকা প্রদান করে 013, যা 11(একচেটিয়া), অর্থাত্ তালিকাটি হবে [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]। ফাংশনটি একই সাথে তিনটি পরামিতি অবধি নেয়slice ফাংশন আমরা আগেই পর্যালোচনা করেছে: range(start, stop[, step])। পার্থক্যটি হ'ল কেবলমাত্র একটি প্যারামিটারের সাথে প্যারামিটারটি থামানো মান উপস্থাপন করে।

দ্রষ্টব্য যে পাইথন 3.x এর কোনও সমতুল্য নেই। এটি rangeএকই রকম, তবে আসলে পাইথন 2 এর সমান xrange, তালিকার পরিবর্তে জেনারেটরের কোনও জিনিস ফেরত।

দৈর্ঘ্য 9:

a,b = b,a

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

দৈর্ঘ্য 8:

#comment

তুমি জানো এটা কি ... দাঁড়াও, তাই না? আপনি জানেন, সেই জিনিসগুলি যা আপনাকে কোডের একটি লাইন বর্ণনার জন্য স্বেচ্ছাসেবী পাঠ্য টাইপ করতে দেয়, এটি বুঝতে সহজ করে তোলে? কোন? ওহ ঠিক আছে...

দৈর্ঘ্য 7:

l[::-1]

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

আমরা যেখানে আরও কিছু আকর্ষণীয় নির্মাণ ব্যবহার শুরু করতে পারি সেখানে পৌঁছে যাচ্ছি!

দৈর্ঘ্য 6:

l[-6:]

একে স্লাইস অপারেশন বলা হয়। যদি lএকটি তালিকা থাকে তবে এটি তালিকা lহিসাবে শেষ ছয়টি উপাদান সমন্বিত একটি নতুন তালিকা ফিরিয়ে দেবে । -6প্রারম্ভিক সূচকটি (শেষ থেকে)) উপস্থাপন করে এবং কোলনের অর্থ সমাপ্তি সূচক অবধি অবধি অবিরত হওয়া অব্যাহত থাকে (যা আমরা ফাঁকা রেখেছি তাই শেষ পর্যন্ত।) যদি আমাদের তালিকায় 1 থেকে 10 নম্বর থাকে তবে এটি ফিরে আসবে [5, 6, 7, 8, 9, 10]

দৈর্ঘ্য 5:

1<x<5

পাইথনের একটি দুর্দান্ত বৈশিষ্ট্য আপনাকে তুলনামূলক অপারেটরদের চেইন করতে দেয়। অন্যান্য অনেক ভাষায়, এটি টাইপ করা হবে 1 < x && x < 5। আপনি একাধিক তুলনা বিবেচনা করলে এটি আরও ভাল হয়: 1 < x < y < 5পুরোপুরি বৈধ!

দৈর্ঘ্য 4:

0256

শীর্ষস্থানীয় শূন্যের সাথে একটি পূর্ণসংখ্যা হল আক্ষরিক অষ্টাল মান। কোড অবিচ্ছিন্নকরণের জন্য এটিও একটি দুর্দান্ত কৌশল। এটি দশমিক মান প্রদান করে 174। পাইথন ৩.x এ, অষ্টাল মান হিসাবে লেখা হবে 0o256

দৈর্ঘ্য 3:

`3`

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

পাইথন 2 এ কেবল কাজ করে!

দৈর্ঘ্য 2:

[]

একটি খালি তালিকা।

দৈর্ঘ্য 1:

_

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

ফ্যাকটোড : পাইথন জাভা এবং সি এর অনুরূপ একটি ভাষা এটি একটি নির্দিষ্ট নকশার দর্শন দিয়ে তৈরি করা হয়েছিল (" পিইপি 20 - পাইথনের জেন " থেকে নেওয়া :

  • কদর্য চেয়ে সুন্দর
  • সুস্পষ্ট বর্ণিত চেয়ে ভাল
  • সহজ জটিল চেয়ে ভাল
  • জটিল জটিল চেয়ে ভাল
  • পঠনযোগ্যতা গণনা

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


যে কোনো সময়! আমি আর স্নিপেট যুক্ত করব না (9 টি দৈর্ঘ্যের প্রতিরোধ করতে পারছি না!), কারণ আপনি ইতিমধ্যে এটির সাথে দুর্দান্ত কাজ করছেন। শুভকামনা!
নাসের-

1
দৈর্ঘ্য 6: এটি ফিরে আসবে [5, 6, 7, 8, 9, 10](তালিকার শেষ 6 নম্বর)
ভিনসেন্ট

দৈর্ঘ্য 16: lএকটি তালিকা হতে হবে না, এটি কোনও পুনরাবৃত্ত বস্তু হতে পারে; টিপলস, তালিকা এবং জেনারেটর উদাহরণস্বরূপ সমস্ত কাজ
নাসের-শ

@ এসপি 3000: আমি এটিকে [সীমাবদ্ধ-উত্স] চ্যালেঞ্জ সহ ব্যবহার করেছি।
রবি ডব্লিজিজে

4
ভাল পুরানো কোন ভালবাসা import antigravity?
সাইফার

87

জাভাস্ক্রিপ্ট

এটি সবচেয়ে পুরানোতে যায়। আমার জন্য লিঙ্ক: [ সম্পাদনা ]

দৈর্ঘ্য 51 স্নিপেট:

console.log(require('fs').readFileSync(__filename))

একটি নোড.জেএস এবার এই কুইন, যদিও এটির নিজস্ব উত্স কোড পড়ার কারণে এটি কোনও "কঠোর কুইন" প্রয়োজনীয়তা ব্যর্থ করবে।

দৈর্ঘ্যের 50 টি স্নিপেট:

a=new XMLHttpRequest;a.open('GET','file');a.send()

অবশেষে! একটি এজেএক্স অনুরোধ ( ভ্যানিলা.জেএস ব্যবহার করে )। আমরা আরম্ভ, খোলা, এবং অনুরোধ পাঠাতে, কিন্তু আমি হ্যান্ডেলার যোগ করার জন্য এবং আসলে ঘর থেকে স্বল্প কি ফলাফলের সাথে কাউকে।

দৈর্ঘ্য 49 স্নিপেট:

msg=new SpeechSynthesisUtterance('Hello World!');

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

দৈর্ঘ্য 48 স্নিপেট:

function repeat(){setTimeout(repeat,48)}repeat()

setIntervalপুনরাবৃত্তভাবে আইএনএস করে অনুকরণ করুন setTimeout

দৈর্ঘ্য 47 স্নিপেট:

module.exports=function MyModule(a) {this.a=a};

নোডজেএস আবার, তবে নীতি জেএসের সর্বত্র একই is এটি একটি খুব বেসিক কনস্ট্রাক্টর ফাংশন, যা একটি সম্পত্তি ( a) দিয়ে একটি বস্তু তৈরি করে । সেটিং module.exportsদ্বারা ব্যবহারের জন্য ফাংশন রপ্তানি require()এটা -ing।

দৈর্ঘ্যের 46 স্নিপেট:

canvas.getContext('2d').fillRect(46,46,46,46);

এটির জন্য একটি <canvas id="canvas"></canvas>উপাদান প্রয়োজন । এটি আইডি সহ উপাদানগুলি বিশ্বব্যাপী ভেরিয়েবল হিসাবে জনবহুল হয়ে ওঠে, তাই canvasজেএস হিসাবে উপাদানটি অ্যাক্সেসযোগ্য । তারপরে আমরা এটিকে x = 46, y = 46 এ 46x46 বর্গ দিয়ে পূরণ করব।

দৈর্ঘ্যের 45 স্নিপেট:

JSON.parse(require('fs').readFileSync('jsn'))

নোডে ফিরে আসুন। এখানে, আমরা jsnবর্তমান ডিরেক্টরি থেকে নামক একটি JSON ফাইল পার্স করি ।

দৈর্ঘ্য 44 স্নিপেট:

(a=document.createElement('a')).href="/url";

# 39 এ বিল্ডিং। এখন আমরা একটি উপাদান তৈরি করি এবং একটি বৈশিষ্ট্য নির্ধারণ করি। এটি এখনও ডোমে নেই।

দৈর্ঘ্যের 43 স্নিপেট:

sq=[1,2,3,4,5].map(function(n){return n*n})

ব্যবহার করে প্রথম 5 স্কোয়ারের একটি অ্যারে তৈরি করে map()

দৈর্ঘ্যের 42 স্নিপেট:

six="1+5",nine="8+1";eval(six+' * '+nine);

এই হিসাবে একই নীতির উপর কাজ করে এই কিন্তু জাতীয় অভাব আছে #defineএবং তাই uglier শেষ পর্যন্ত। এটি অবশ্যই ফিরে আসে জীবন, মহাবিশ্ব এবং সমস্ত কিছুর জবাব

দৈর্ঘ্যের 41 স্নিপেট:

c=function(){var i;return function(){}}()

একটি বন্ধের শুরু। cঅভ্যন্তরীণ ভেরিয়েবল অ্যাক্সেস সহ এখন একটি ফাংশন (অভ্যন্তরীণ একটি) i, তবে এটি কিছুই করে না।

দৈর্ঘ্যের 40 স্নিপেট:

$('p').click(function(){$(this).hide()})

আমরা সেই অনুচ্ছেদগুলি পুরোপুরি বাদ দিচ্ছি এবং jQuery ব্যবহার করছি।

দৈর্ঘ্য 39 স্নিপেট:

script=document.createElement('script')

এটি একটি নতুন বাহ্যিক স্ক্রিপ্ট যুক্ত করার শুরু। একটি খালি <script>উপাদান তৈরি করুন এবং এটিতে একটি রেফারেন্স রাখুন।

দৈর্ঘ্য 38 স্নিপেট:

document.getElementsByClassName('abc')

.abcডকুমেন্টের সমস্ত উপাদান সন্ধান করুন। অবশ্যই, jQuery সহ, এটি কেবল $('.abc')...

দৈর্ঘ্য 37 স্নিপেট:

b=JSON.parse(JSON.stringify(a={3:7}))

দুটি অভিন্ন, কিন্তু decoupled অবজেক্ট তৈরি করে a, এবং b। যদি আপনি করতেন

a={a:1};
b=a;
b.a=3;

আপনি শেষ করতে চাইবেন a=={a:3}, কারণ aএবং bএকই জিনিসটির দিকে নির্দেশ করুন। আমরা তাদের ডিক্লোল করার জন্য JSON ব্যবহার করি।

দৈর্ঘ্য 36 স্নিপেট:

(function f(){return "("+f+")()"})()

একটি কুইন । এটি নিজস্ব উত্স কোড মুদ্রণ করে।

দৈর্ঘ্য 35 স্নিপেট:

document.body.style.display="none";

# 32 দেখুন। এইটি বিষয়বস্তু ওভাররাইট না করে কেবল দস্তাবেজটি আড়াল করে।

দৈর্ঘ্য 34 স্নিপেট:

Object.prototype.toString.call(34)

Object.prototype.toStringকোনও বস্তুর ধরণ বলার জন্য কলিং একটি ভাল উপায়। যদিও 34..toString()হয় "34", স্নিপেট হয় [object Number]

দৈর্ঘ্যের 33 স্নিপেট: (এটির জন্য ক্রেডিট একজন অনামী ব্যবহারকারীর কাছে যায় )

+0%-0.&(v\u0061r=~void[{}<<!(0)])

মনে করুন এটি জাভাস্ক্রিপ্ট বৈধ নয়? আরও ভাল করে দেখুন ... (ক্রোম ব্যবহার করুন);)

দৈর্ঘ্য 32 স্নিপেট:

document.body.innerHTML="hacked"

সম্বন্ধে সাহায্য! Hazxxors! এগারো !! 11!

দৈর্ঘ্য 31 স্নিপেট:

a=[];for(i=0;i<31;i++)a.push(i)

মজা করছে না, আমি আসলে এতক্ষণ অপেক্ষা করছিলাম যে আসলে forলুপটি ব্যবহার করতে পারবে ! এটি একটি 0-30 থেকে একটি অ্যারে তৈরি করে।

দৈর্ঘ্যের 30 টি স্নিপেট:

new Date().getDay()==1?"S":"E"

প্রথমবার টেরিনারি অপারেটর ব্যবহার করে। আমি 30 টি চরিত্রে এর চেয়ে বেশি ফিট করতে পারি না, তাই আমরা কেবল জানি আজ রবিবার, না অন্য কিছু। : P: P

দৈর্ঘ্য 29 স্নিপেট:

Object.keys(window).push('i')

Object.keys(window)গ্লোবাল ভেরিয়েবলের বৈশিষ্ট্য (বৈশিষ্ট্য window) পাওয়া যাবে। .push()অ্যারেতে একটি আইটেম সংযোজন করবে। এর সমতুল্য মনে হয় window.i=undefined? নাঃ!

দৈর্ঘ্যের 28 স্নিপেট:

setTimeout("a=confirm()",28)

একটি নতুন থ্রেড তৈরি করা ব্যতীত 28 মিলিসেকেন্ড অপেক্ষা করা এত কার্যকর নয়।

দৈর্ঘ্যের 27 টি স্নিপেট:

document.querySelector('a')

এটি লজ্জাজনক যে DOM নামগুলি এত দীর্ঘ। আমি এখানে কেবল একটি লিঙ্ক পেতে পারি।

দৈর্ঘ্য 26 স্নিপেট:

JSON.stringify({twenty:6})

# 16 দেখুন। এখন আমরা আসল জেএসএন - একটি স্ট্রিং পাই।

দৈর্ঘ্যের 25 স্নিপেট:

new Badge("Good Answer");

ধরে Badge()নেওয়া একটি যুক্তিযুক্ত কনস্ট্রাক্টর ফাংশন ... একটি উত্তম উত্তর ব্যাজ সবেমাত্র তৈরি হয়েছিল!

দৈর্ঘ্যের 24 স্নিপেট:

do {alert(24)} while(!1)

আমি আসলে do..whileখুব বেশি ব্যবহার করি না , তবে কিছু করে। এটি যদি একটি সাধারণ whileলুপ হয় তবে এটি কোনও কিছু সতর্ক করে না, কারণ এটি সর্বদা মিথ্যা। do..whileযদিও সর্বদা কমপক্ষে একবার চালানো হবে, তাই আমরা 24 টি দেখতে পাই।

দৈর্ঘ্যের 23 স্নিপেট:

window.parent==self.top

এগুলি একই জিনিসকে বোঝায়, সাধারণত হিসাবে পরিচিত window। আপনি যদি কোনও ফাংশনটি স্বাভাবিকভাবে কল করেন তবে তাও রয়েছে this। এটি গ্লোবাল অবজেক্ট অ্যাক্সেসের 5 টি উপায়!

দৈর্ঘ্যের 22 স্নিপেট:

for(i in self)alert(i)

সমস্ত বিশ্বব্যাপী ভেরিয়েবলগুলি সতর্ক করে দিন। এটা হতে পারে self==window। (পরবর্তী স্নিপেট দেখুন।)

দৈর্ঘ্য 21 স্নিপেট:

"2"+1==21 && 2+1=="3"

ওহ দেখুন, এটি আবার জেএসের ভোটদানের নিয়ম। এই বিবৃতি সত্য, বিটিডব্লিউ।

দৈর্ঘ্যের 20 স্নিপেট:

Math.random()<.5?0:1

0-1 থেকে একটি এলোমেলো সংখ্যা বেছে নিন এবং টার্নারি অপারেটরটি ব্যবহার করে গোল করুন। যদিও এটি ব্যবহার করা সহজ হবে Math.round...

দৈর্ঘ্যের 19 স্নিপেট:

[1,2,3].map(i=>i*i)

এই এক নতুন। লাইক, সত্যিই নতুন। এটি 1, 2 এবং 3 এর স্কোয়ার গণনা করতে ES6 তীর ফাংশন ব্যবহার করে বর্তমানে এটি কেবল ফায়ারফক্স দ্বারা সমর্থিত বলে মনে হচ্ছে।

দৈর্ঘ্যের 18 স্নিপেট:

location.href="/";

# 15 টির মতো, তবে এবার এটি পিপিসি হোমপেজে যায়, এসই নয়।

দৈর্ঘ্যের 17 স্নিপেট:

(function(){})()

এটি 14 থেকে স্নিপেট, তবে আরও ভাল! এখন এটি একটি আইআইএফই।

দৈর্ঘ্যের 16 স্নিপেট:

obj={not:'json'}

এটি আমার পোষা প্রাণীর একটিকে বোঝায়। এটি জাসন নয় , একটি বিষয় ! JSON হ'ল একটি জাভা স্ক্রিপ্ট অবজেক্টের উপর ভিত্তি করে ডেটা-ইন্টারচেঞ্জ ফর্ম্যাট, তবে আরও কঠোর ফর্ম্যাট নিচ্ছে।

দৈর্ঘ্যের 15 স্নিপেট:

open('//s.tk/')

এটা কল্পনা। এসই হোমপেজটি খুলুন, http://s.tk/ পুনর্নির্দেশ ব্যবহার করে ।

দৈর্ঘ্য 14 স্নিপেট:

function f(){}

W00t! কার্যাবলী! এটা খুব খারাপ, কোন রুমে আছে কি কিছু।

দৈর্ঘ্য 13 স্নিপেট:

Math.random()

0 থেকে 1 পর্যন্ত একটি এলোমেলো সংখ্যা তৈরি করুন আপনার নিজের সীমাটি নির্ধারণ করতে চান? শক্ত ভাগ্য। (আসলেই নয়, এটি সহজ))

দৈর্ঘ্যের 12 স্নিপেট:

new Date<=12

এই বক্তব্য জেএস-এ কখনও সত্য হয়নি। জেএস'৯৯ অবধি তৈরি করা হয়নি (ফ্যাক্টয়েড দেখুন), 1/1/1970 00: 00: 00.012 এর পরেও।

দৈর্ঘ্য 11 স্নিপেট:

Math.PI*121

ব্যাসার্ধ 11 এর সাথে একটি বৃত্তের ক্ষেত্রফল।

দৈর্ঘ্য 10 স্নিপেট:

if('j')9+1

আপনি যদি খেয়াল না করে থাকেন, আমি কোডে স্নিপেট নম্বর দিয়ে কিছু করতে চাই। এইটি 10 ​​প্রদান করে, এবং বর্ণমালার দশম বর্ণ, জে ব্যবহার করে।

দৈর্ঘ্য 9 স্নিপেট:

[9].pop()

একটি আইটেম দিয়ে একটি অ্যারে তৈরি করুন। ঝাঁটা 9 popযায় ।

দৈর্ঘ্য 8 স্নিপেট:

document

সমস্ত ডিওএম কাজের ভিত্তি। তবে আমরা কিছুই করতে পারি না, কারণ এটি অনেক দীর্ঘ। :( যাও jQuery!

দৈর্ঘ্য 7 স্নিপেট:

alert()

ওহ ছেলে! একটি ফাংশন কল! অবশেষে জিনিস করতে সক্ষম হচ্ছেন!

দৈর্ঘ্যের 6 টি স্নিপেট:

var x=6

# 3 এর উপর ভিত্তি করে। অনেক ভাল যদিও, এখন বিশ্বব্যাপী সুস্পষ্ট । : P: P

দৈর্ঘ্য 5 স্নিপেট:

[][5]

এমনকি খাটো চেয়ে void 0পেতে undefined। বিটিডাব্লু: ''.aআরও খাটো; মাত্র 4 টি অক্ষর।

দৈর্ঘ্য 4 স্নিপেট:

+"4"

এটি 4স্ট্রিংয়ের বাইরে নম্বর তৈরি করবে "4"। এই ঠিক একই 4 টি অক্ষর আপনি বিপরীতে করতে একটি ভিন্ন ক্রমে পুনরায় ব্যবহার করতে পারেন!

দৈর্ঘ্য 3 স্নিপেট:

x=3

ওহ ডাং, আমরা কেবল একটি অন্তর্নিহিত বৈশ্বিক পরিবর্তনশীল ...

দৈর্ঘ্য 2 স্নিপেট:

{}

এটি কি করে? আপনি যদি বলেছিলেন যে কোনও বস্তু আক্ষরিক তৈরি করে তবে আপনি ভুল। এটি আসলে একটি খালি ব্লক। একটি কনসোল খুলুন এবং চেষ্টা করুন! এটি ফিরে আসে undefined, না {}

2018 সালে, {}ক্রোমের কনসোলে প্রকৃতপক্ষে একটি খালি অবজেক্ট ফেরত দেয়।

দৈর্ঘ্য 1 স্নিপেট:

1

এটাই. যে কোনও সংখ্যা একটি বৈধ জেএস এক্সপ্রেশন।

ফ্যাকটোড: জাভাস্ক্রিপ্টকে মূলত লাইভস্ক্রিপ্ট বলা হত। এটি জাভাস্ক্রিপ্টে পরিবর্তিত হয়েছিল জাভাটির জনপ্রিয়তার জন্য এই সময়ে (1995) উপস্থাপন করতে। ব্যক্তিগতভাবে তাদের পুরানো নামটি রাখা উচিত ছিল; জাভাস্ক্রিপ্ট তখন থেকেই বিভ্রান্তির কারণ হয়ে দাঁড়িয়েছে। ফ্যাক্টটি হ'ল, জাভা এবং জাভাস্ক্রিপ্ট প্রায় "কার" এবং "কার্পেট" এর মতোই ।


1
স্নিপেট 33 ফায়ারফক্সে কাজ করে না। এটি কি সত্যিই বৈধ জেএস?
অরিওল

আমি কোনও বস্তুকে এতো নোংরা করার জন্য এটি স্ট্রিংফাইজিং এবং রিপ্রেসিংয়ের সন্ধান পেয়েছি। ECMAScript 6 টি পরিচয় করিয়ে দেয় Object.assign, তাই স্নিপেট 37 হয়ে যায় b = Object.assign({ }, a = {3 : 7})
ওরিওল

@ অরিওল হ্যাঁ, ঠিক আছে, এখনই ফায়ারফক্স এটি সমর্থন করে, তাই আপাতত আমাদের নোংরা পথে লেগে যেতে হবে। কমপক্ষে এটি এর চেয়ে ভাল eval(uneval(a)), তাই না? ;)
স্কিমোনস্টার

প্রায় # 38, সবসময় আছে document.querySelectorAll("element#id.classname[attribute]:not(somethingwedontwant)")। (যে কোনও বৈধ সিএসএস নির্বাচনকারীকে সমর্থন করে)।
মাটোন 1

# 40 স্নিপেট নিজেই তেমন আকর্ষণীয় নয়, তবে মন্তব্যটি অমূল্য।
স্কিমোনস্টার

85

আর

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

দ্রষ্টব্য: প্রতিযোগিতার প্রয়োজনীয়তা না হলেও এখানের প্রতিটি স্নিপেটটি আর এর মাধ্যমে নিজস্ব চালানো যায়।


দৈর্ঘ্য 32:

`[.data.frame`(swiss,3,2,drop=F)

এটিকে কিছুটা রহস্যময় মনে হচ্ছে ... এবং সত্যই এটি হওয়া উচিত! এটি লেখার আরও অনেক ভাল উপায় আছে:

swiss[3, 2, drop = FALSE]

এটি কিছুটা বেশি পরিচিত দেখা উচিত look কোডগুলির এই টুকরোগুলির মধ্যে যখন কোনটি চালানো হয় তখন এখানে কী ঘটে থাকে:

> `[.data.frame`(swiss,3,2,drop=F)
             Agriculture
Franches-Mnt        39.7

আর এর সাথে swissডেটা ফ্রেম শিপগুলি আমরা এখন পর্যন্ত দেখেছি এমন আরও অনেকের মতো। এটি ১৮৮৮ সাল থেকে সুইজারল্যান্ডের 47 টি ফরাসী-ভাষী প্রদেশের জন্য উর্বরতা এবং আর্থ-সামাজিক সূচক রয়েছে The তৃতীয় সারিতে ফ্রেঞ্চস-মন্ট প্রদেশটির জন্য এবং দ্বিতীয় কলামটি প্রতিটি প্রদেশে একটি পেশা হিসাবে কৃষিতে জড়িত পুরুষদের শতাংশ percent সুতরাং 1888 সালে, সুইজারল্যান্ডের ফ্রেঞ্চ-মন্ট প্রদেশের 39.7% পুরুষ কৃষিতে কাজ করেছিলেন।

আপনি যখন সরল স্বরলিপি ব্যবহার করে কোনও ডেটা ফ্রেম থেকে সারি বা কলামগুলি বের করেন, তখন আর [.data.frameব্যাকগ্রাউন্ডে আসলে ব্যবহার করে । যেমনটি আমরা স্নিপেট ২৪-তে দেখেছি, পিছনে টিক্সের চারপাশে যতক্ষণ পর্যন্ত চারপাশে ঘিরে রয়েছে ততক্ষণ কোনও কিছুই ফাংশন নাম হিসাবে সংজ্ঞায়িত করা যেতে পারে, সুতরাং ফাংশনটির নামটিতে প্রযুক্তিগতভাবে মেশেনি বন্ধনী থাকা সত্ত্বেও আমাদের স্নিপেটটি বৈধ legit

drop=যুক্তি আর বলে কিনা আপনি এটা যদি সম্ভব কম মাত্রা মধ্যে ফলাফলের ড্রপ করতে চান। সত্যই, যদি আমরা বলি drop=TRUE, আমরা এটি পেয়েছি:

> `[.data.frame`(swiss,3,2,drop=T)
[1] 39.7

যেখানে পূর্বে ফলাফলটি একটি ডেটা ফ্রেম ছিল, আর এখন আমাদের ডাবল দেয়।


দৈর্ঘ্য 31:

print(fortune("hadleywickham"))

fortune()ফাংশন সর্বজ্ঞ থেকে fortunesপ্যাকেজ, যা জ্ঞানী ভাবেন বিভিন্ন থেকে জ্ঞানী কোট বিভিন্ন প্রদান করে। এই স্নিপেটটি কনডোলে মুদ্রণের মাধ্যমে হ্যাডলি উইকহাম (23) এর নিম্নলিখিত রত্ন সরবরাহ করবে:

That's a casual model, not a causal model - you can tell the difference by looking
for the word "excel".
    -- Hadley Wickham (commenting on an Excel chart showing student's SAT score
       increases with family income, without considering future covariates)
       http://twitter.com/#!/hadleywickham (February 2012)

দৈর্ঘ্য 30:

pie(rep(1,12),col=rainbow(12))

কে ভাল পাই চার্ট পছন্দ করে না? pie()ফাংশন আপনি একটি পুনশ্চ বেকড পাই সংখ্যার একটি ভেক্টর উপর ভিত্তি করে চার্ট আপ পরিবেশন করা হবে। rep()প্রথম উপাদান পুনরায় ব্যবহার করে একটি ভেক্টর সৃষ্টি R বার যেখানে R দ্বিতীয় যুক্তি। দ্যcol=পরামিতি বলে pie()টুকরা রঙ কিভাবে। যাদুকরী ফাংশন rainbow()রংধনুটির "সমান দুরত্ব" বর্ণের হেক্স কোডযুক্ত একটি নির্দিষ্ট দৈর্ঘ্যের একটি ভেক্টর তৈরি করে।

আপনার এখানে যা রয়েছে তা হল আপনার মৌলিক "এই চার্টে প্রতিটি রঙের পরিমাণ" চার্ট:

এখানে চিত্র বর্ণনা লিখুন


দৈর্ঘ্য 29:

summary(lm(mag~depth,quakes))

এখানে কয়েকটি জিনিস চলছে, সুতরাং আসুন একবারে তাদের এক ধাপ নিন।

quakes এটি একটি ডেটাসেট যা আর দিয়ে প্রেরণ করে It এটি ১৯64৪ সাল থেকে ফিজির নিকটে রিখটার স্কেলে than.০ এর বেশি মাত্রার 1000 ভূমিকম্পের ঘটনা সম্পর্কে তথ্য ধারণ করে the ডেটাসেটের দুটি কলাম হ'ল mag হ'ল ভূমিকম্পের মাত্রা এবং depthযা কিলোমিটারে কেন্দ্রস্থলের গভীরতা।

lm()ফাংশন, যেমন স্নিপেট 28 এ উল্লিখিত, রৈখিক মডেলের দেখাচ্ছে। এটি কোনও lmবস্তু, বা আরও স্পষ্টভাবে শ্রেণীর একটি বস্তু প্রদান করে lm। ভবিষ্যদ্বাণীকারী (বা স্বাধীন পরিবর্তনশীল) এবং প্রতিক্রিয়া (বা নির্ভরশীল ভেরিয়েবল) নির্দিষ্ট করার জন্য দুটি উপায় রয়েছে এবং আমি সূত্র পদ্ধতিটি বেছে নিয়েছি chosen এটি রূপ নেয় response ~ predictor। একাধিক ভবিষ্যদ্বাণী হিসাবে নির্দিষ্ট করা হয়y ~ x1 + x2 । সূত্রের বস্তুগুলি পরবর্তী যুক্তিতে প্রদত্ত প্রসঙ্গে মূল্যায়ন করা হয়।

সুতরাং যা lm(mag ~ depth, quakes)করছে তা হ'ল সাধারণ ন্যূনতম স্কোয়ার রিগ্রেশন ব্যবহার করে একটি রৈখিক মডেল ফিট করা যেখানে প্রস্থতা হ'ল প্রতিক্রিয়া এবং গভীরতা হল ভবিষ্যদ্বাণীকারী। এটি কী magএবং কী depthতা আমরা জানি কারণ তারা জানিয়েছে যে তারা এসেছে quakes

summary()প্রাথমিকভাবে লাগানো মডেলগুলির ফলাফলগুলির সংক্ষিপ্তসার জন্য ব্যবহৃত একটি জেনেরিক ফাংশন। এটি তার আর্গুমেন্টের শ্রেণিতে বিশেষত একটি পদ্ধতিকে আহ্বান করে। যেহেতু আমরা কোনও lmবস্তুকে পাশ করেছি , এটি আসলে একটি ফাংশন নামে ডাকে summary.lm()

এগুলি একসাথে রেখে আমরা লিনিয়ার মডেলটির ভূমিকম্পের গভীরতা থেকে ভূমিকম্পকে ব্যাখ্যা করার চেষ্টা করার সংক্ষিপ্তসার পাই। বিশেষত, আর এটিই ছড়িয়ে দেয়:

> summary(lm(mag~depth,quakes))

Call:
lm(formula = mag ~ depth, data = quakes)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.72012 -0.29642 -0.03694  0.19818  1.70014 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  4.755e+00  2.179e-02 218.168  < 2e-16 ***
depth       -4.310e-04  5.756e-05  -7.488 1.54e-13 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.3921 on 998 degrees of freedom
Multiple R-squared:  0.05319,   Adjusted R-squared:  0.05225 
F-statistic: 56.07 on 1 and 998 DF,  p-value: 1.535e-13

লক্ষ্য করুন যে এটি আপনাকে প্রথম জিনিসটি কী বলেছে ফাংশন কল? কারণ lm()ফাংশনটি match.call()যেমন ব্যবহার করে , যেমনটি আমরা স্নিপেট ২৮ তে করেছিলাম!


দৈর্ঘ্য 28:

f<-function(x,y)match.call()

আর ক্রিয়াকলাপগুলি প্রায়শই আপনি যা বলছেন সেগুলি ট্র্যাক করে রাখতে পছন্দ করে। আসলে, কখনও কখনও আপনার জমা দেওয়া আদেশটি আপনাকে প্রত্যাবর্তিত অবজেক্টের বৈশিষ্ট্য হিসাবে ফিরিয়ে দেওয়া হয়। (উদাহরণস্বরূপ lm(), যা লিনিয়ার মডেল তৈরি করে)) সঠিক নির্দেশাবলী স্মরণ match.call()করা ফাংশনের মধ্যে ব্যবহার করে সম্পন্ন হয়। এটি ব্যাখ্যা করা ফাংশন কলটিকে ক্যাপচার করে বা ম্যাচ করে

এখানে আমরা একটি ফাংশন সংজ্ঞায়িত করেছি f()যা দুটি আর্গুমেন্ট গ্রহণ করে এবং তারপরে এটি কী দেখেছিল তা আপনাকে বলে দেয়।

> f(1,2)
f(x = 1, y = 2)

প্যাকেজ বিকাশের মতো সাধারণ ব্যবহারের জন্য (কেবল আপনার জন্য নয়) ফাংশন বিকাশ করার সময় এটি প্রাথমিকভাবে কার্যকর হয়। আপনি যদি match.call()বন্যের উদাহরণ দেখতে চান তবে lm()জমা দেওয়ার জন্য উত্স কোডটি দেখুন stats:::lm। এটির প্রথম কাজগুলির মধ্যে একটি হ'ল ব্যবহার করে ফাংশন কলটি ক্যাপচার করা match.call()


দৈর্ঘ্য 27:

install.packages("ggplot2")

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

install.packages()এর নামটি যা বোঝায় ঠিক তা করে। এটি আপনার ডিফল্ট সিআরএন (বিস্তৃত আর আর্কাইভ নেটওয়ার্ক) মিরর ব্যবহার করে প্যাকেজগুলির জন্য একটি হান্টিনে চলে আসে তখন এটি আপনার সিস্টেমে ইনস্টল করে যেখানে আর তাদের সন্ধান করতে পারে। আপনি এটি স্থানীয় উত্স কোড থেকে প্যাকেজ ইনস্টল করতে পারেন।

স্নিপেট 23 মনে আছে যেখানে আমরা ggplot2প্যাকেজটি ব্যবহার করেছি ? এই প্যাকেজটি আর দিয়ে প্রেরণা দেয় না, তবে কেবল ২ characters টি অক্ষরে আপনি ggplot2এটি ইনস্টল করে আপনার সমস্ত স্বপ্ন বাস্তব করতে পারেন ।


দৈর্ঘ্য 26:

filled.contour(t(volcano))

volcanoআর সঙ্গে ডেটা সেটটি জাহাজ এটা অকল্যান্ড, নিউজিল্যান্ড মধ্যে Maungawhau (অথবা মেগাটন ইডেন) এ স্থান বিবরণ সম্বন্ধীয় তথ্য আগ্নেয়গিরি ধারণকারী একটি ম্যাট্রিক্স আছে। ম্যাট্রিক্সের সারিগুলি গ্রিড লাইনের সাথে পূর্ব থেকে পশ্চিমে প্রবাহিত হয় এবং কলামগুলি গ্রিড লাইনগুলি দক্ষিণ থেকে উত্তরে চলছে north

বিশৃঙ্খলার জন্য, দিকনির্দেশগুলি অদলবদল করা যাক, তাই কলামগুলি এখন পূর্ব-পশ্চিম এবং সারিগুলি দক্ষিণ-উত্তরে। আমরা ম্যাট্রিক্স ট্রান্সপোজ ব্যবহার করে এটি করতে পারি, এর মাধ্যমে সম্পন্ন t()। এবং কেন আমরা একটি কনট্যুর মানচিত্র তৈরি করার সময় এটি তৈরি করব না? filled.contour()ঠিক আছে।

এখানে চিত্র বর্ণনা লিখুন


দৈর্ঘ্য 25:

pmatch("s",c("n","size"))

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

এখানে স্নিপেট এই ফাংশনটি ব্যবহারের একটি "রিয়েল-ওয়ার্ল্ড" উদাহরণ। 13 স্নিপেটে ফিরে চিন্তা করুন যেখানে আমরা sample()ফাংশনটি ব্যবহার করেছি । এটিকে স্বীকার আর্গুমেন্ট n, size, replace, এবং prob, কিন্তু শুধুমাত্র প্রথম দুই প্রয়োজন। স্নিপেট 13 এ আমরা s=শর্টহ্যান্ড হিসাবে ব্যবহার করেছি size=। ব্যাকগ্রাউন্ডে যা চলছে তা হ'ল এই স্নিপেটের মতো কিছু, যেখানে আমরা সরবরাহ করেছি যা প্রত্যাশার সাথে তুলনা করা হয়। যেহেতু "s" "আকার" মিলছে অনন্য, তাই s=শর্টহ্যান্ড হিসাবে ব্যবহার করা সম্পূর্ণরূপে বৈধ ।


দৈর্ঘ্য 24:

`(`=function(x)9;2*(3-1)

আপনার কিছু করা উচিত নয় এমন একটি নিখুঁত উদাহরণ! কখনো!

ফাংশনটি সংজ্ঞায়িত করার সময় আপনি এতক্ষণ অক্ষরগুলিকে ফাংশন হিসাবে বরাদ্দ করতে পারবেন যতক্ষণ না আপনি তাদের পিছনে টিকগুলি ঘিরে রাখছেন। এখানে আমরা আর (কে বলেছি যে একটি ফাংশন যা ইনপুট নির্বিশেষে সর্বদা 9 ফেরত দেয়। অন্যান্য অনেক ভাষার মতোই, ;একটি লাইনে দুটি কমান্ড অন্তর্ভুক্ত করার জন্যও ব্যবহার করা যেতে পারে। সুতরাং আমরা আর কে যা বলেছি তা হ'ল ফাংশনটি সংজ্ঞায়িত করা (, তারপরে মুদ্রণ করা 2*(3-1)

এখন, কেবল যে কোনও ব্যক্তি আপনাকে বলবেন যে 2 * (3-1) 4 হওয়া উচিত কারণ আপনি 3-1 = 2 করেন, তারপর 2 * 2 = 4 করুন। তবে আমরা আর কে জানিয়েছি যে প্রথম বন্ধনের অভ্যন্তরের যে কোনও কিছু 9 So তাই 3-1 = 2 থাকাকালীন আমাদের এখন (3-1) = 9 রয়েছে। তারপরে আমরা 2 * (3-1) = 2 * 9 = 18 পাই।

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


দৈর্ঘ্য 23:

qplot(Na,y=RI,data=fgl)

পরিশেষে একটি (খুব) সাধারণ ggplot2উদাহরণের জন্য যথেষ্ট ভোট । ggplot2প্যাকেজ গ্রাফিক্স ব্যাকরণের একজন আর বাস্তবায়ন, কাল্পনিক আর দেবতা দ্বারা নির্মিত হ্যাডলি আপনি Wickham । সাধারণভাবে বাক্য গঠনটি বেস আর গ্রাফিক্স থেকে খুব আলাদা এবং কিছুটা অভ্যস্ত হয়ে যায়। তবে, qplot()প্যাকেজের কয়েকটি মূল বৈশিষ্ট্যগুলির একটি সহজ ইন্টারফেস এবং এর plot()বেস বাক্সের মতো বাক্য গঠন রয়েছে । তবে আমি আপনাকে যে উদাহরণ দেখিয়েছি তার বিপরীতে qplot()ফাংশন প্যারামিটারের নামের আংশিক মিলকে সমর্থন করে না।

fglডেটা সেটটি থেকে আসে MASSপ্যাকেজ। এটিতে ফরেনসিক কাচের টুকরোগুলির বৈশিষ্ট্য পরিমাপ রয়েছে। এখানে আমরা ভেরিয়েবলগুলি ব্যবহার করছি Na, যা ওজন অনুসারে শতকরা সোডিয়াম (না), এবং RIযা গ্লাসটির অপসারণকারী সূচক।

এখানে চিত্র বর্ণনা লিখুন


দৈর্ঘ্য 22:

unique(presidential$n)

unique()ফাংশন একটি ভেক্টর ক্রমে তারা ইনপুট মধ্যে প্রদর্শিত তার ইনপুট ভেক্টর থেকে অনন্য মান ধারণকারী ফেরৎ। presidentialসঙ্গে ডেটা সেটটি জাহাজ ggplot2প্যাকেজ (27)। (এটি সংশোধন করার জন্য জেমাস 42 কে ধন্যবাদ!) এর বর্ণনা:

প্রতিটি রাষ্ট্রপতির নাম, তাদের মেয়াদ শুরুর এবং শেষ তারিখ এবং আইজেনহোয়ার থেকে বুশ ডাব্লু পর্যন্ত 10 মার্কিন রাষ্ট্রপতির তাদের দল

presidentialএকটি ডেটা ফ্রেম এবং ডেটা ফ্রেমের কলামগুলিতে যেমন তালিকা থাকে আইটেমগুলি থাকে contain কলামগুলি নাম ব্যবহার করে রেফারেন্স করা হয় $। এই নির্দিষ্ট ডেটাসেটটির একটি কলাম nameরয়েছে, এতে রাষ্ট্রপতির নাম রয়েছে। তবে অপেক্ষা করুন, আমরা কেবল নির্দিষ্ট করেছি n! প্রকৃতপক্ষে, এটি আংশিক মিলের আরও একটি উদাহরণ (13, 16), তাই nসম্পূর্ণরূপে আইনী।

এটি জমা দেওয়ার একটি আকর্ষণীয় ফলাফল রয়েছে:

[1] "Eisenhower"  "Kennedy"  "Johson"   "Nixon"  "Ford"  "Carter"
[7] "Reagan"      "Bush"     "Clinton"

লিন্ডন বি জনসনের নাম বানান কীভাবে তা লক্ষ্য করুন ... ওফস।

(দ্রষ্টব্য: এটি পোস্ট করার এক বছর পরে আমার নজরে এসেছে, জনসন টাইপো ঠিক হয়ে গেছে। আরআইপি হিউমার।)


দৈর্ঘ্য 21:

integrate(dexp,0,Inf)

একটি সীমাবদ্ধ বা অসীম বিরতিতে একক ভেরিয়েবলের ফাংশনগুলির অভিযোজিত চতুর্ভুজগুলির জন্য আর এর একটি অন্তর্নির্মিত ফাংশন রয়েছে। আর এ ইনফিনিটি Inf+ ইনফিনিটি এবং ইনফিনিটির জন্য নির্দিষ্ট করা হয়েছে -Infdexp()ফাংশন সূচকীয় বন্টনের জন্য সম্ভাব্যতা বিতরণের ফাংশন। যেহেতু ঘৃণ্য বিতরণের সমর্থন [0, + অনন্ত) এবং সম্ভাব্য বন্টন 1 এর সাথে সংহত করা হয়, তাই আমরা ফলাফলটি 1 আশা করব Behold দেখুন, একটি প্রত্যাশিত ফলাফল!

1 with absolute error < 5.7e-05

দৈর্ঘ্য 20:

deriv(~cos(x^3),"x")

প্রতীকী ডেরিভেটিভগুলি আর করতে পারে! এটি ফিরে আসে:

expression({
    .expr1 <- x^3
    .value <- cos(.expr1)
    .grad <- array(0, c(length(.value), 1L), list(NULL, c("x")))
    .grad[, "x"] <- -(sin(.expr1) * (3 * x^2))
    attr(.value, "gradient") <- .grad
    .value
})

এর মাধ্যমে আপনি দেখতে পাবেন যে কীভাবে এটি ফাংশনটিকে বিশ্লেষণ করে এবং চেইন বিধিটি ব্যবহার করে। প্রথম বর্ষের ক্যালকুলাস নিয়ে আসা একটি ফাংশন সবকিছুই করতে সক্ষম হবে! এই ক্ষেত্রে deriv()ফাংশনটির প্রথম যুক্তিটি কিছু ভেরিয়েবলের ক্ষেত্রে একটি আর এক্সপ্রেশন (যা প্রকৃত আর টাইপ) x। দ্বিতীয় যুক্তি হ'ল এখানে ডেরিভেটিভ নেওয়া হয়েছে সেই সম্মানের সাথে চলকের নাম "x"

সত্যিই ঝরঝরে কিছু দেখতে চান? উপরেরটি ভেরিয়েবলকে বরাদ্দ করুন, বলুন dx। একটি ভেরিয়েবলকে xসংখ্যাসূচক ভেক্টর হিসাবে সংজ্ঞায়িত করুন । তারপরে জমা দিন eval(dx)। আর ডেরিভেটিভকে মূল্যায়ন করে x!


দৈর্ঘ্য 19:

c(matrix(1,3,3),"a")

আর-তে, c()"সংযুক্ত" বা "কনটেনেটেট" এর সংক্ষিপ্ততর তার যুক্তিগুলি থেকে একটি ভেক্টর তৈরি করে। ভেক্টরগুলির উপাদানগুলি একই ধরণের এবং সমস্ত দৈর্ঘ্য 1 থাকতে হবে But

যদি আর্গুমেন্টগুলি c()কেবল একটি একক প্রকার ধারণ করে, কোনও প্রকারের ingালাই ঘটে না, উদাহরণস্বরূপ যদি সমস্ত আর্গুমেন্টগুলি লজিকাল ( TRUEএবং FALSE) হয় তবে ভেক্টরটি সমস্ত লজিক্যাল হবে। যদি এটিতে লজিক্যালস এবং সংখ্যা থাকে তবে এটি সমস্ত সংখ্যা হবে। যদি এতে চরিত্র এবং কিছু থাকে তবে এটি সমস্ত চরিত্রের হবে। সুতরাং আমাদের স্নিপেট আমাদের এটি দেয়:

> c(matrix(1,3,3),"a")
[1] "1" "1" "1" "1" "1" "1" "1" "1" "1" "a"

নোট করুন যে 3 বাই 3 ম্যাট্রিক্স সমতল হয়েছিল এবং "ক" এর সংযোজন সবকিছুকে অক্ষরে পরিণত করেছিল।


দৈর্ঘ্য 18:

(1-1/3-1/3-1/3)==0

মেশিন নির্ভুলতার একটি পাঠ। এই ফিরে আসে FALSE


দৈর্ঘ্য 17:

example(readline)

example()ফাংশন কেমন কোনো বিল্ট-ইন ফাংশান ব্যবহার করতে একটি উদাহরণ দেব। আপনার কীভাবে ব্যবহার করবেন তা সন্ধান করতে হবে readline(), আপনার কাছে একটি উত্তর আছে R

> example(readline)

readln> fun <- function() {
readln+   ANSWER <- readline("Are you a satisfied R user? ")
readln+   ## a better version would check the answer less cursorily, and
readln+   ## perhaps re-prompt
readln+   if (substr(ANSWER, 1, 1) == "n")
readln+     cat("This is impossible.  YOU LIED!\n")
readln+   else
readln+     cat("I knew it.\n")
readln+ }

readln> if(interactive()) fun()
Are you a satisfied R user?

বিনয়ী হওয়ার উপায়, আর।


দৈর্ঘ্য 16:

acf(lh,t="part")

acf()ফাংশন একটি সময় সিরিজের জন্য autocorrelation ফাংশনটি। lhএটি একটি ডেটাসেট যা আর দিয়ে পাঠায় Its এর বর্ণনা:

একটি নিয়মিত সময় সিরিজ যা একজন মানুষের মহিলা থেকে 48 মিনিটের ব্যবধানে রক্তের নমুনায় লুটেইঞ্জিং হরমোন দেয়।

এই উদাহরণে, আংশিক মিল দুটি বার ব্যবহার করা হচ্ছে : একবার ফাংশন প্যারামিটারের সাথে এবং একবার প্যারামিটারে স্ট্রিংয়ের মান দিয়ে। পূর্ণ প্যারামিটার নাম typeএবং স্বীকৃত মান "correlation", "covariance"এবং "partial"। এটি অনন্যভাবে সনাক্ত করতে কেবল স্ট্রিংয়ের যথেষ্ট পরিমাণ সরবরাহ করতে হবে, তাই আমরা এর "part"জন্য ব্যবহার করতে পারি "partial", যা আমাদের আংশিক স্বতঃসংশোধন ফাংশন (পিএসিএফ) দেয়।

এখানে চিত্র বর্ণনা লিখুন


দৈর্ঘ্য 15:

p3d(bunny,p=99)

আবার আমরা কুখ্যাত বানি দেখতে পাই (11)। onionপ্যাকেজ আমাদের কখনও সবচেয়ে দরকারী ডেটা সেটটি দেখতে, 3D ষড়যন্ত্র ফাংশন ব্যবহার করে একটি এমনকি nicer উপায় দেয় p3d()। এটি persp()ব্যাকগ্রাউন্ডে বেস গ্রাফিক্স ফাংশনটিকে কল করে , যা একটি ঘূর্ণমান আর্গুমেন্ট নেয় phi। প্যারামিটার নামের সাথে আংশিক মিল (13) ব্যবহার করে আমরা কেবলমাত্র তার p=জায়গায় নির্দিষ্ট করতে পারি phi=

এখানে চিত্র বর্ণনা লিখুন


দৈর্ঘ্য 14:

stats:::rgamma

আর ওপেন সোর্স তবে সোর্স কোডটি দেখতে আপনাকে উইজার্ড হতে হবে না; আপনি কেবল প্যাকেজের নাম এবং ফাংশনটি টাইপ করতে পারেন যার কোডটি আপনি তিনটি কলোন ( :::) দ্বারা পৃথক করে দেখতে চান । এটি আপনাকে কোড দেয় rgamma()যা ফাংশনটি সংজ্ঞায়িত করে যা গামা বিতরণ থেকে এলোমেলোভাবে বিচ্যুত হয়। এটি জমা দেওয়ার ফলে:

function (n, shape, rate = 1, scale = 1/rate)
{
    if (!missing(rate) && !missing(scale)) {
        if (abs(rate * scale - 1) < 1e-15)
            warning("specify 'rate' or 'scale' but not both")
        else stop("specify 'rate' or 'scale' but not both")
    }
    .External(C_rgamma, n, shape, scale)
}
<bytecode: 0x00000000098cd168>
<environment: namespace:stats>

মনে রাখবেন এটি কোনও ফাংশন ব্যবহার করে .External()। এটি অন্যান্য ভাষায় লিখিত ফাংশনগুলিকে কল করে, সাধারণত সি এবং ফোর্টরান, সেই ভাষাগুলির মধ্যে যা আর এর অনেক বেশি ভিত্তি করে source সেই উত্স কোডটি সনাক্ত করতে কিছুটা উইজার্ডারি লাগবে। সম্পাদনা করুন: @ ভলো উল্লেখ করেছেন যে নিখুঁত নশ্বররা প্যাকেজটি ব্যবহার করে .Internal()এবং .Primitive()ব্যবহার করে অন্তর্নিহিত সি কোড দেখতে পাবে pryr। ধন্যবাদ, @ ভলো!


দৈর্ঘ্য 13:

sample(9,s=4)

এটি দেখতে খুব বেশি লাগে না তবে এটি আর এর একটি শক্তিশালী ধারণাটির উদাহরণ দেয়: ফাংশন প্যারামিটারগুলির আংশিক মিল । নাম পরামিতি sample()ফাংশন হয় size, replaceএবং prob, কিন্তু আপনি শুধুমাত্র নামে প্যারামিটারের যথেষ্ট চিঠি প্রদান এটা অনন্যভাবে চেনা দরকার। সুতরাং sample(), অন্য কোনও প্যারামিটারের নাম "s" অক্ষর দিয়ে শুরু না হওয়ার s=পরিবর্তে আপনি ব্যবহার করতে পারেন size=। এখানে কোডটি পূর্ণসংখ্যা 1 থেকে 9 থেকে 4 আকারের এলোমেলো নমুনা নির্বাচন করে।


দৈর্ঘ্য 12:

LETTERS[-pi]

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


দৈর্ঘ্য 11:

plot(bunny)

ইন onionপ্যাকেজ, সেখানে একটি ডেটাসেটের নামক bunny। এটি প্লট করা আপনাকে দেয় যা সর্বকালের সবচেয়ে দরকারী গ্রাফিক হতে পারে:

এখানে চিত্র বর্ণনা লিখুন


দৈর্ঘ্য 10:

????sample

বলুন যে আপনি sample()ফাংশনটি সম্পর্কে আসলেই বিভ্রান্ত হয়ে পড়েছেন এবং আপনার খুব প্রয়োজন হ'ল সহায়তা। ?sampleআর ম্যানুয়াল পৃষ্ঠাটি টানতে স্বাভাবিকের চেয়ে আপনি চারটি প্রশ্নবোধক চিহ্ন রেখেছিলেন। আর আপনার দুর্দশা শুনে এবং সাহায্য করার চেষ্টা করে ...

Contacting Delphi...the oracle is unavailable.
We apologize for any inconvenience.

হায়রে।


দৈর্ঘ্য 9:

isTRUE(1)

প্রথমে এটি পৃথক করে আর বেস প্যাকেজটির বাকী অংশে কনভেনশনকে অস্বীকার করে isএবং ক এর সাথে ফাংশনের নামে নিম্নলিখিত শব্দটি .। তবে, এটি কেবল যুক্তিটি কোনও নির্দিষ্ট ধরণের কিনা তা নীচের (8) হিসাবে একটি যৌক্তিক পরীক্ষার ক্ষেত্রে প্রযোজ্য। এই ক্ষেত্রে, আমরা এটি TRUEযা কিনা তা পরীক্ষা করে নিচ্ছি যা কোন ধরণের নয়। এটির একটি কঠোর সংজ্ঞা ব্যবহৃত হয় TRUE, অর্থাৎ 1 সাধারণ অর্থে "সত্য" নয়। isTRUE(1)আয় FALSE


দৈর্ঘ্য 8:

is.na(8)

অন্যান্য বেশিরভাগ প্রোগ্রামিং ভাষার মতো .নয় , এটি ফাংশন এবং পরিবর্তনশীল নামের একটি বৈধ অক্ষর। এটি কোনও ধরণের পদ্ধতি বা উত্তরাধিকার সূচিত করে না; এটি কেবল নামের অংশ। is.na()ফাংশন পরীক্ষা করে কিনা তার যুক্তি মূল্যায়ণ NA(অনুপস্থিত) ও আয় TRUEবা FALSE


দৈর্ঘ্য 7:

stop(7)

এটি ত্রুটি বার্তা হিসাবে ইনপুটটিতে একটি ত্রুটি জারি করে। যদি কোনও ফাংশনের ভিতরে ডাকা হয় তবে ফাংশন সম্পাদন বন্ধ হয়ে যাবে। তবে এটি কোনও ফাংশনের বাইরে কল করলে স্ক্রিপ্টটি থামবে না। এই ক্ষেত্রে, আউটপুট হয় Error: 7


দৈর্ঘ্য 6:

x < -1

যদিও এটি তুচ্ছ মনে হতে পারে, এটি অ্যাসাইনমেন্ট অপারেটরের একটি বড় সমালোচনা প্রদর্শন করে <-: যথা: স্থানগুলির স্থানের উপর নির্ভর করে এর অর্থ পরিবর্তন হয়। উল্লিখিত হিসাবে, x <- 11 যাও বরাদ্দ x। উপরের মতো একক স্থান পৃথক করা <এবং -এটি x-1 এর চেয়ে কম কিনা তার যৌক্তিক পরীক্ষায় পরিবর্তন হয়। যে কারণে, অনেক =নিয়োগের পক্ষে পছন্দ করেন।


দৈর্ঘ্য 5:

x<<-1

সর্বদা বর্তমান স্কোপ নির্বিশেষে বৈশ্বিক স্কোপকে পরিবর্তনশীল বরাদ্দ করা <-বাদে একই জাতীয় <<-


দৈর্ঘ্য 4:

x<-1

আর <-বর্তমান স্কোপে ভেরিয়েবল বরাদ্দ করতে ব্যবহার করে। এই স্নিপেট 1 টির মান নির্ধারণ করে x


দৈর্ঘ্য 3:

!0i

!অপারেটর জন্য R হল "না," এবং 0iজটিল সংখ্যা 0+0i, ওরফে 0 জটিল সমতলে। TRUE0 থেকে এই বিবৃতিটি জমা দেওয়া মিথ্যা is


দৈর্ঘ্য 2:

NA

এটি বিশেষ আর মানটি প্রদান করে NAযা "অনুপলব্ধ" নয়, অনুপস্থিত মানকে বোঝায়।


দৈর্ঘ্য 1:

T

এই ফিরে আসে TRUE। আর সালে Tএবং Fবুলিয়ান মানের জন্য প্রতিশব্দের হয় TRUEএবং FALSEযথাক্রমে।


ইয়া আর "!"(T)!
Vlo

@ ভ্লো: "!"(T)মূল্যায়ন করে FALSE। তবে "ইয়ে আর" বিবৃতিটি কখনও ভুল নয় is ;)
অ্যালেক্স এ।

আরও এন্ট্রি করার জন্য আমি কীভাবে আরও upvote করব ???? "সেই উত্স কোডটি সনাক্ত করা কিছুটা উইজার্ডারি লাগে না" - .Internalএবং .Primitive->pryr::show_c_source(.Primitive("sum"))
ভেলো

@ ভ্লো: আমি pryrপ্যাকেজটির কথা শুনিনি । খুব ঠান্ডা! যে ইশারা জন্য ধন্যবাদ। আপনি এখন পর্যন্ত এন্ট্রি পছন্দ করেছেন বলে আমি আনন্দিত, সমর্থনের জন্য ধন্যবাদ। :)
অ্যালেক্স এ।

2
@ জেমাস 42 এহ, আপনাকে data(bunny)প্রথমে করা দরকার বলে মনে হচ্ছে ।
অ্যালেক্স এ।

75

Brainfuck

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

Brainf * ck এর একটি টেপ বেস মেমোরি রয়েছে 30000 কোষ এবং আ চলমান পয়েন্টার সহ, এবং এটি এর মতো দৃশ্যমান হতে পারে:

0 0 0 0 0 0
    ^

^পয়েন্টারটি উপস্থাপন করে এমন অক্ষর এবং 0 টি প্রতিটি কক্ষের মানগুলি উপস্থাপন করে।

ব্রেইনফাকের আটটি নির্দেশ রয়েছে:

Instruction  C Equivalent              Description
+            mem[ptr]++;               Add one to the value under the cell
-            mem[ptr]--;               Subtract one from the value under the cell
>            ptr++;                    Go on cell to the right
<            ptr--;                    Go on cell to the left
,            mem[ptr] = getchar();     Read a ASCII character from input and put the result in the value under the cell
.            putchar(mem[ptr]);        Write a ASCII character to the output using the value under the cell
[            while (mem[ptr]) {        Start a while loop: Continue to matching ']' when value under the cell is 0
]            }                         End a while loop: Go back to matching '[' when value under the cell is NOT 0

ব্রেইনফাক টু সি:

#include <stdlib.h>

int main(void) {
    unsigned char* mem = calloc(30000, sizeof(unsigned char));
    unsigned int ptr = 0;

    // Put your brainfuck code here, converted to the matching expressions under "C equivalent"

    return 0;
}

দৈর্ঘ্য 1 স্নিপেট

একটি অক্ষর পড়ুন এবং এটি বর্তমান ঘরে রেখে দিন।

,

স্মৃতি (ইনপুট সহ abc)

0 0 97 0 0 0
    ^

দৈর্ঘ্য 2 স্নিপেট

একটি বর্তমান কক্ষে যুক্ত করুন এবং পয়েন্টারটি ডানে সরিয়ে দিন।

+>

স্মৃতি

0 0 1 0 0 0
      ^

দৈর্ঘ্য 3 স্নিপেট

বর্তমানের ঘর থেকে একটি শূন্য না হওয়া পর্যন্ত অপসারণ করুন; বর্তমান ঘরটি শূন্যে সেট করুন

[-]

সম্ভাব্য স্মৃতি:

স্মৃতি: (আগে)

0 0 100 0 0 0
    ^

স্মৃতি: (পরে)

0 0 0 0 0 0
    ^

দৈর্ঘ্য 4 স্নিপেট

মন্তব্যসমূহ: ব্রেইনফাক-এ, কোনও নির্দেশনা হ'ল সবকিছু এড়ানো যায় না। সেই কারণে নিম্নলিখিত প্রোগ্রামটি সম্পূর্ণ বৈধ (তবে খালি) ব্রেনফাক প্রোগ্রাম:

Hey!

দৈর্ঘ্য 5 স্নিপেট

একটি সাধারণ বিড়াল প্রোগ্রাম (আউটপুট ইনপুট লিখুন)

,[.,]

তার মন্তব্যের জন্য টমসমেডকে ধন্যবাদ

দৈর্ঘ্য 6 স্নিপেট

কারেন্টের বর্তমান কক্ষের মানটি ডানে সরিয়ে নিয়ে যান (ঘরটি ডানদিকে ধরে নিচ্ছেন 0, অন্যথায় এটি বর্তমান কক্ষের মানটি ডানে ঘরের মান যোগ করবে):

[>+<-]

সাধারণভাবে, লোকেরা যদিও চলকটি স্থানান্তর করতে এই কোডটি ব্যবহার করে।

স্মৃতি: (আগে)

10 0 100 0 0 0
     ^

স্মৃতি: (পরে)

10 0 0 100 0 0
     ^

দৈর্ঘ্যের 25 স্নিপেট

একটি ছয় অক্ষর ইনপুট বিপরীত করুন এবং এটি মুদ্রণ করুন, প্রতিটি ASCII অক্ষর (এন-1) এর পরে .. 1 (যেখানে এন প্রথম ইনপুট অক্ষরের মান)।

,>,>,>,>,>,.<.<.<.<.<[.-]

দৈর্ঘ্য 53 স্নিপেট

main(){i=0;j=0;if(i>=0){if(j<=i)i+=1;i-=1;}return 0;}

এই মিনিফাইড সি প্রোগ্রামটি ছদ্মবেশে একটি ব্রেনফাক প্রোগ্রাম এবং তদ্বিপরীত! আসলে, তারা (প্রায়) একই জিনিস করে। "মন্তব্য" (সি কোড) ছাড়াই এখানে ব্রেইনফাক কোড রয়েছে।

><+-

আমাকে ব্রেনফাক কোড (এবং সি কোড) ব্যাখ্যা করুন। আপনি দেখতে পাচ্ছেন যে এটিতে দুটি কক্ষ ( iএবং j) ব্যবহার করা হয়েছে। এটি প্রথম কক্ষকে বাড়ায় ( i1 দ্বারা বৃদ্ধি )। তারপরে এটি একই কক্ষে হ্রাস iপায় ( 1 দ্বারা হ্রাস )।

এটি কয়েকটি উত্স কোড দুটি ভিন্ন ভিন্ন ভাষা হিসাবে সংকলন করতে সক্ষম হয়ে চালানো (ব্যবহারিকভাবে) একইরকম একটি নির্বোধ উদাহরণ।


2
,[.,]- 5 টি অক্ষর, বিড়াল প্রোগ্রাম
টমসডিং

13
এটি আমার দেখা সেরা "ব্রেইনফাক 101 101" হতে পারে।
hoosierEE

দৈর্ঘ্য:: যেটি ডান কক্ষে যোগফল রাখবে এবং বাম দিকটি শূন্য করবে। না, না?
ফিলিপ হাগলুন্ড

ধারণাটি আরও ভালভাবে ব্যাখ্যা করার জন্য একটি ডামি ভেরিয়েবল 6 দৈর্ঘ্যে যুক্ত করা হয়েছে। প্রোগ্রামটি প্রকৃতপক্ষে সেল # 4 কোষে সেল # 3 যুক্ত করবে এবং সেল # 3 0. তৈরি করবে
YoYoYonnY

58 ভোট - আপনি আপডেট করতে পারেন? :)
কনর ও'ব্রায়ান

65

সি ++

এর প্রিপ্রোসেসর, টেমপ্লেটস, ল্যাম্বডাস, টাইপ বৈশিষ্ট্য এবং অগণিত অন্যান্য জটিল বৈশিষ্ট্যগুলির দ্বারা যে কেউ কখনও তার সম্পূর্ণতার মধ্যে বুঝতে বুঝতে পারে না, সি ++ এর নতুন প্রতিটি প্রজন্ম তার নতুন আবিষ্কার করে। কম্পাইল সময়ে কিছু করার তার বহু উপায়ে শোষণ করে, এক একটি লাইব্রেরি কম্পাইল সময়ে তাদের সুস্থতা পরীক্ষা করার জন্য শারীরিক ইউনিট সাংখ্যিক datatypes সংযুক্ত হচ্ছে দেয় যে ভালো শূন্য ওভারহেড বিমূর্ত লিখতে পারেন (যেমন আপনি ফলাফল ধার্য করতে পারেন না kg* mথেকে N)

দৈর্ঘ্য 1

#

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

দৈর্ঘ্য 2

%:

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

দৈর্ঘ্য 3

??=

এটি সি ++ এর একটি historicalতিহাসিক পাঠ্যক্রম। এই দিনগুলি অগত্যা আর বৈধ নয়, যদিও বাস্তবায়নগুলি তাদের সমর্থন করতে পারে তবে তা ট্রিগ্রফ। এই ক্রমটি #সেই সমস্ত সিস্টেমে অনুবাদ করা হয় যা এটি সমর্থন করে তবে কাঁচা স্ট্রিং লিটারেলের সাথে হস্তক্ষেপ না করার জন্য এটিগুলির মধ্যে এটি অনুমোদিত নয়। বাস্তবায়নগুলি পুরোপুরি সমর্থন বাদ দিতে পারে।

দৈর্ঘ্য 4

auto

জেনেরিক কোড দিয়ে কাজ করা সহজ করার জন্য এক নতুন (সি ++ 11) আবিষ্কারগুলির মধ্যে একটি। এটি কোনও এক্সপ্রেশনের ধরণের জন্য এবং যেহেতু সি ++ 14 এটি ল্যাম্বডা প্যারামিটারগুলি এবং ফেরতের ধরণের ফাংশনগুলি কাটাতে ব্যবহার করা যেতে পারে।

দৈর্ঘ্য 5

 catch

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

দৈর্ঘ্য 6

[](){}

[]{}()

মন্তব্যে স্টিফান যেমন উল্লেখ করেছেন, আপনি []{}সবচেয়ে সংক্ষিপ্ত ল্যাম্বদা অবজেক্ট হিসাবে ব্যবহার করতে পারেন , সুতরাং এটি ল্যাম্বডাকে কল করার জন্য সংক্ষিপ্ততম ফর্ম । নিম্নলিখিত পাঠ্যটি পুরানো সংস্করণের জন্য:

সম্ভবত একটি ল্যাম্বডের সংক্ষিপ্ততম রূপ। সি ++ এ ল্যাম্বডাস হ'ল অবজেক্ট (বাস্তবায়ন সংজ্ঞায়িত ধরণের) যা তারা ([[] সিনট্যাক্স এটিকে নিয়ন্ত্রণ করে)) এ তৈরি করা স্কোপটির কিছু অংশ ক্যাপচার করতে সক্ষম হয় এবং (() সিনট্যাক্স এটি নিয়ন্ত্রণ করে)। তাদের কোড ({। অংশ) এর এই ভেরিয়েবলগুলিতে অ্যাক্সেস রয়েছে যেন তারা তাদের ক্ষেত্রের মধ্যে থাকে। সি ++ 14 এ তাদের alচ্ছিক রিটার্নের ধরণের কাটা এবং অটো প্যারামিটার ছাড়ের সাথে, তারা কল করার যোগ্য আশা করে এমন সমস্ত স্ট্যান্ডার্ড লাইব্রেরি অ্যালগোরিদমের জন্য ব্যবহার করার সরঞ্জাম।

দৈর্ঘ্য 7

virtual

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

দৈর্ঘ্য 8

override

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

দৈর্ঘ্য 9

constexpr

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

দৈর্ঘ্য 10

for(i:c){}

কনটেইনার সম্পূর্ণরূপে লুপ, অথবা কনস্ট্রাক্টের মতো কনটেইনার যা সমর্থন করে std::beginএবং পুনরাবৃত্তি std::endপেতে পারে (এতে সি স্টাইল অ্যারে রয়েছে)। এটি মূলত সমান for(auto __i = std::begin(c); __i != std::end(c); ++__i){ auto& i = *__i; }। এটি জেনেরিক কোডে সহজ লুপিংয়ের অনুমতি দেয়।

দৈর্ঘ্য 11

void f()&&;

সদস্য ক্রিয়াকলাপগুলি এবং যে বস্তুতে তারা আহ্বান জানাতে পারে তার বৈশিষ্ট্যগুলি ঘোষণা করার একটি নতুন উপায়। সি ++ এর পূর্ববর্তী সংস্করণগুলিতে আমাদের কেবলমাত্র void f() const;কম্পাইলারকে কনস্টেবল অবজেক্টগুলিতে ফাংশনটি কল করতে সক্ষম হতে বলার ক্ষমতা ছিল (এইভাবে বিন্যাস ছাড়াই আপনি তাদের অ-কনস্ট্রাক্ট অবজেক্টগুলিতে কল করতে পারবেন না)। একইভাবে এখন আমাদের কাছে &&r-মান রেফারেন্সের বাক্য গঠনটি রয়েছে যেগুলি ফাংশনগুলিকে কল করতে সক্ষম হতে পারে।

দৈর্ঘ্য 12

int main(){}

এটি সম্ভবত সংক্ষিপ্ততম সম্পূর্ণ প্রোগ্রাম যা আপনি লিঙ্কটি সংকলন এবং চালনা করতে পারেন। এটি কিছুই করবে না এবং ফিরে আসবে 0. এই রিটার্নটি সি ++ এ আপনি যে অনেকগুলি বিশেষ মুখোমুখি হতে পারেন তার মধ্যে একটি। সাধারনত কিছুই ফিরিয়ে দেওয়া অপরিবর্তিত আচরণ নয়, তবে এন্ট্রি পয়েন্ট ফাংশন প্রধানের জন্য কিছুই ফিরিয়ে নেওয়া মানে 0 ফেরত পাওয়া যায় না।

দৈর্ঘ্য 13

auto f()->int

কোনও ফাংশনের রিটার্নের ধরণের ঘোষণা করার জন্য এটি একটি নতুন উপায়। সাধারণত আপনি যদি প্রকারটি ইতিমধ্যে জানেন তবে আপনি এটি করবেন না তবে জেনেরিক প্রোগ্রামিংয়ে প্রচুর পরিস্থিতি রয়েছে যেখানে টাইপটি টেমপ্লেট পরামিতি এবং আপনি যে পরিবর্তনগুলি ব্যবহার করেন তার উপর নির্ভর করে। এইভাবে এটি করা এর template<class T> auto f( const T& t ) -> decltype(t.foo())পরিবর্তে এই পরামিতিগুলিতে কিছুটা সহজ অ্যাক্সেসের অনুমতি দেয়template<class T> decltype(std::declval<T>().foo()) g( const T& t ) { return t.foo(); }


2
আমি ;বিকল্প 1-চর স্নিপেট হিসাবে ব্যবহার করার পরামর্শ দেব , কারণ এটি কোনও প্রিপ্রসেসর ম্যাক্রো নয় এবং আপনি C ++ এ 1-বর্ণের বিবৃতি পেতে পারেন তা মোটেই বিস্মিত বলে মনে হচ্ছে।
জো জেড।

1
[](){}ল্যাম্বদার সংক্ষিপ্ত রূপ নয়: পরামিতিগুলির তালিকা খালি থাকায় এটি বাদ দেওয়া যেতে পারে। অতএব []{}সংক্ষিপ্ততম ল্যাম্বদা। তুচ্ছভাবে, []{}()একটি ল্যাম্বডায় সংক্ষিপ্ত সম্পাদন ;-) আদর্শ one.com/k8fAvs
স্টিফান

@ স্টেফান: প্রকৃতপক্ষে, আমি সবসময় এটি ভুলে যাই যেহেতু এটি তখনকার মতো কার্যকর মনে হয় না;) আমি এটি উত্তরে যুক্ত করেছি।
প্লাজমাএইচএইচ

@ প্লাজমাএইচএইচ আমি একেবারেই ঘৃণা করছি কারণ এটি কোনও ফাংশনের মতো দেখাচ্ছে না .. ;-)
স্টিফান

59

Regex

দৈর্ঘ্য 2 স্নিপেট

[]

জাভাস্ক্রিপ্ট : একটি খালি অক্ষর শ্রেণি যা কোনও কিছুর সাথে মেলে না।

পিসিআরই , জাভা , পাইথনre , রুবি (২.০ সংস্করণে পরীক্ষা করা হয়েছে): সিনট্যাক্স ত্রুটি।

দৈর্ঘ্য 1 স্নিপেট

.

.ডট-অল নামে পরিচিত, সমস্ত স্বাদে উপলভ্য যেগুলি আমার দেখার সুযোগ ছিল।

এটি কি মেলে?

͟͟͟͟҉̡̨̨͜͜͞҉̵̵̵̷̷̡̨̢͘͘͜͢͢͢͜͞͝͝͝҉, ̴.̸̢́҉ ̕̕ ̴̢̛ ̴̸̢̡̢̛͞ą̴̴̶̶̨̨̛̛̛͘͘͘͘͘͢͢͢͞͞͡͡҉̕͢͢͢͢͢͢͢͢͢͢ć̴̛̛̀̀̀͘͘͘͘͘͘͘͘̕͠͠͠͠͠͠͠͠͡͡͡͡͡҉̴҉̴҉̶̶̶̶̶̶̶̶̶̶̕͡͡͡͡͡͡͡͡͡͡͡͡͡͡͡͡͡

জাভাPattern : ডিফল্ট মোডে, ডট-অল এই 5 কোড পয়েন্ট ব্যতীত যে কোনও কোড পয়েন্টের সাথে মেলে \r\n\u0085\u2028\u2029। সঙ্গে UNIX_LINESউপর (কিন্তু ছাড়া মোড DOTALL), ডট কোন কোড বিন্দু মিলে যায়, ছাড়া \n। সঙ্গে DOTALLউপর মোড, ডট কোন কোড বিন্দু সাথে মেলে। জাভা 5 থেকে, Patternকোড পয়েন্টে কাজ করে, তাই জ্যোতির্যুক্ত অক্ষরগুলি ডট-অল দ্বারা মিলিত হয়।

পাইথনre (২.7.৮ এবং ৩.২.৫ এ পরীক্ষা করা হয়েছে, ৩.৩++-তে আলাদা হতে পারে): ডিফল্ট মোডে ডট-অল কোনও ইউটিএফ -১ code কোড ইউনিট (0000 থেকে এফএফএফএফ অন্তর্ভুক্ত) এর সাথে মেলে \nre.DOTALLব্যতিক্রম উত্তোলন করে এবং .কোনও ইউটিএফ -16 কোড ইউনিট মেলে। এই সংস্করণগুলিতে, reইউটিএফ -16 কোড ইউনিটে পরিচালনা করে, তাই .কেবলমাত্র জ্যোতির্বিজ্ঞানের অক্ষরগুলির একটি কোড ইউনিট মেলানো পরিচালনা করে।

। নেট : পাইথন হিসাবে একই। .NET- এ ডট-অল মোডকে ডাকা হয় Singleline

জাভাস্ক্রিপ্ট (সি ++ 11 <regex>) : ডিফল্ট মোডে, ডট-সমস্ত এই 4 কোড পয়েন্ট ব্যতীত কোনও ইউটিএফ -16 কোড ইউনিটের সাথে মেলে \n\r\u2028\u2029। সঙ্গে sপতাকায়, ডট কোন হল UTF-16 কোড ইউনিট সাথে মেলে। জাভাস্ক্রিপ্ট ইউটিএফ -16 কোড ইউনিটেও পরিচালনা করে।

পিসিআরই : বিল্ড বিকল্পের উপর নির্ভর করে বিন্দু-সমস্তই বাদ দিতে পারে \r, \nবা \r\n, বা সমস্ত 3 সিআর এলএফ সিকোয়েন্স, বা কোনও ইউনিকোড নিউলাইন সিকোয়েন্স ডিফল্ট মোডে। ডিফল্ট মোডে, ইঞ্জিন কোড ইউনিটে (8, 16, বা 32-বিট কোড ইউনিট হতে পারে) কাজ করে, সুতরাং ডট-অল নিউলাইন সিকোয়েন্সগুলি বাদ দিয়ে কোনও কোড ইউনিটের সাথে মেলে। ইউটিএফ মোডে, ইঞ্জিন কোড পয়েন্টে কাজ করে, সুতরাং ডট-অল নিউলাইন সিকোয়েন্সগুলি বাদ দিয়ে কোনও কোড পয়েন্টের সাথে মেলে। ডট-অল মোড বলা হয় PCRE_DOTALL

পিএইচপি (আদর্শের উপর পরীক্ষিত): পিসিআরই, ইউটিএফ -8 লাইব্রেরি হিসাবে সংকলিত এবং \nএটি ডিফল্টরূপে একমাত্র নিউলাইন ক্রম। ডট-অল মোড sপতাকা মাধ্যমে অ্যাক্সেসযোগ্য ।

পোস্টগ্রিস : ডিফল্ট মোডে, বিন্দু ব্যতীত কোনও কোড পয়েন্টের সাথে মেলে।

রুবি (২.০.০ সংস্করণে পরীক্ষিত): ডিফল্ট মোডে, .ব্যতীত কোনও কোড পয়েন্টের সাথে মেলে \n। ডট-অল মোড mপতাকা (()) এর মাধ্যমে অ্যাক্সেসযোগ্য ।

s রুবিতে উইন্ডোজ -31 জ এনকোডিং নির্দেশ করতে পতাকা ব্যবহার করা হয়।


Factoid

Aftere̡͟҉ǵ͟͢e̴̢͘͡x̡́͞ .c҉̷̨a̸̛͞n҉̛͠ ̴͠͡҉̵ą̧͜͢p̴͠͡҉̵ą̧͜͢r̸̸̷̢͝s̢̀͡e̷̷̷͘͞ ̨̧͜͜H̨̧͜͜T̷͞M̷̛͜L͢.̴̡́ আমার পরে পুনরাবৃত্তি করুন। R̶̶̢̧̰̞̻̮̳̦̥ͭͯ̓̈ͯͤ̇͊͊͟ĕ̹̩̪͈͈͍̗͎̝͚̽̈ͨ̐̽ͪͮ̍͐ͮͧ̔̏̓ͣĝ̵̢̢̖̤̜̭͔͊͒ͦ͛ͤ͗ͬͧͪ̾͘͟eͦ̄ͭ̑̾҉̨̨̝̬̹̘̭͔͟͢x̣̻͓̠͈͕̥̜͚̝̫͚̳̾̍ͦ̑̈̋̌̉͊ͮ͗̄̆̒̚̚ ̸̦͈̥̬̺͇ͧͧ͐ͮ̌ͤ̈̒̆ͣ̈̏̔͊̐ç̨̬̪̳̦͎̖͕̦͔ͨ̿̓̈ȁ̸̳̺̠̭ͮ̓̐͘̕͜͡ņ̨̫͔͍̬̤̘͎͚̣̟̦͍̜ͭͭ̈ͦ̈̽͗ͥ̑͝͡ পার্স ͉̭̫̰͔̝͓̼̮͚̻͎͎͉̐͗͗͊̇ͣ͒͗͑̆͐̐ͬ͛ͮ͝H̢̥͕̼͓̫͙̺̼̮ͣͦ̍ͨ͒̔̌T̪̦̻̦͖̞̤͒̑ͭ̐̑ͭͣ͐̒̉͊͜͜M̞̪͇͕̩͉͗ͧ̌ͯ͋̉̍ͭ̓̇̐̌͜͠Ĺ̷̨̳̘̯͚͓͛͌ͭ̉̍.ͯ͆̊ ͯ̇̓̏͐ͪ̋̈͑̕҉̷̠̰̼̤


35
আমি যে কারও কাছে ফ্যাক্টয়েডের রেফারেন্স না পেয়ে খারাপ লাগছি।
রোববেনক্লেন

6
@ আরবোবেনক্লেইন আমি আপনার ব্যথার একটি গোপন ওষুধ জানি: কেবল আমাদের আলোকিত করুন!
flawr

24
@flawr ঐ যে বিখ্যাত প্রশ্ন জানি না জন্য: প্রথমে উত্তর stackoverflow.com/questions/1732348/... আপনি যা খুঁজছেন তা নয়।
রোববেনক্লেন

1
আপনি জালগো'এ লেখাটি পড়তে পারেন তবে এগুলি উভয় দিকেই খুব গুরুত্ব সহকারে নেবেন না। অন্ধভাবে জালগোয়ের পথ অনুসরণ করা স্পষ্টত ভুল, তবে জালগো পাঠ্যটি সর্বদা ভুল হয় না।
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

12
@ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳, আপনি কীভাবে এইচটিএমএল পার্স করবেন তা আমাদের দেখানোর জন্য এই সমস্ত ভোট ব্যবহার করছেন না?
mbomb007

57

জে

পিএস: স্নিপেটগুলি এখন ট্রাইজে ডটকমের সাথে লিঙ্ক হয়েছে যা জে ইনস্টল না করেই আপনার ব্রাউজারে জাভাস্ক্রিপ্টে চলছে তাদের সাথে চারপাশে খেলতে দেয়।

পিপিএস: আমি আদেশ অদলবদল; এটি এতে যোগদানকারী ব্যক্তিদের এবং ভবিষ্যতের রেফারেন্সের জন্য আরও অর্থবোধ করে।

পিপিএস: আমি মনে করি, সময়ের সীমাবদ্ধতার কারণে আমি দিনে একটি স্নিপেট যুক্ত করব

factoid:

জে এপিএলের বংশধর ( পারিবারিক ইতিহাসের জন্য এখানে দেখুন ) মজাদার চরিত্রের সেটটি বিয়োগ করে।

দৈর্ঘ্য 1 স্নিপেট

_

সংখ্যার আক্ষরিক (ক্রিয়াটির বিপরীতে ) সংযুক্ত থাকাকালীন J অনন্ত_ হিসাবে এবং নেতিবাচক সূচক হিসাবে উভয়ই ব্যবহার করে -

দৈর্ঘ্য 2 স্নিপেট

a.

a.সমস্ত 1 বাইট অক্ষর সমন্বিত বর্ণমালা বলা হয় । atoiবর্ণমালায় যেমন সরল বর্ণমালা হয় সেহেতু এ জাতীয় জে যেমন ফাংশন ধারণ করে না :a. i. 'z' =122

দৈর্ঘ্য 3 স্নিপেট

i.9

i.পূর্ণসংখ্যার জন্য হয়, যখন একাকীভাবে ব্যবহৃত হয় (যেমন, কেবলমাত্র একটি যুক্তি, ডানটি , সাধারণত y বলে) called যখন dyadically ব্যবহার করা হয় এটি উপরের উদাহরণ হিসাবে সূচক হিসাবে কাজ করে ।

দৈর্ঘ্য 4 স্নিপেট

!!6x

জে স্বেচ্ছাচারিত নির্ভুলতা পূর্ণসংখ্যা এবং যুক্তি সংখ্যার সমর্থন করে । এটি the (একটি 1747 সংখ্যার সংখ্যা) এর ফ্যাক্টরিয়াল গণনা করে।

দৈর্ঘ্য 5 স্নিপেট

^.^:_ 

একটি ঘন এক ... প্রথমত, ক্রিয়াগুলি (জে কল হিসাবে ফাংশনগুলি) থিম দ্বারা সংগঠিত হয়। সমস্ত ^ ক্রিয়া ক্ষয়ক্ষেত্রের সাথে আবদ্ধ। ^জন্য exponentiation (এবং expযখন monadically ব্যবহৃত, ^.জন্য লগারিদম^:একটি বিশেষ এক, হয় বিদ্যুৎ সংযোগ (ক উচ্চতর ক্রম ফাংশন), একটি ফাংশন সময়ের একটি সংখ্যা প্রযোজ্য পারে। যখন ডান যুক্তি অনন্ত (হয় _এটা তার বাম যুক্তি executes (IN) উদাহরণস্বরূপ ^.) একটি নিজস্ব আউটপুট উপর পর্যন্ত এটা এগোয়। বস্তুতপক্ষে, ^.^:_একটি ক্রিয়াপদ সমাধানে হয় x = ln(x)যখন কোন যুক্তি কিন্তু 1, ফলনশীল প্রয়োগ 0.318132j1.33724

দৈর্ঘ্যের 6 টি স্নিপেট

^0j1p1

বা সমতুল্য

^o.0j1

জেতে ইউলারের পরিচয় উপরে বর্ণিত হিসাবে ^রয়েছে exp()। নির্বিচারে নির্ভুলতা পূর্ণসংখ্যা এবং যুক্তি ছাড়াও, এটি পাই এবং জটিল সংখ্যার শক্তি এবং আক্ষরিক হিসাবে এর সংমিশ্রণকে সমর্থন করে। 0j1p1মানে (0 + j) * pi ^ 1

দৈর্ঘ্যের 7 স্নিপেট

+/&.:*:

কোনও ভেক্টরের 2-আদর্শ গ্রহণকারী ক্রিয়াপদ। এটি 2 টি জিনিস প্রদর্শন করে:

  • সন্নিবেশ ক্রিয়া বিশেষণ যোগ ক্রিয়া সক্রিয় +যুক্তি প্রতিটি উপাদান মাঝখানে সন্নিবেশ করার মাধ্যেমে যোগফল মধ্যে। অত: পর (0+1+2+3) = +/ i.4

  • একত্রে অধীনে যখন হিসেবে ব্যবহার v &.: u yসমতূল্য vi u v y, যেখানে viহয় অভিমুখ (সাধারণত বিপরীত)।

হ্যাঁ, জে ফাংশনাল ইনভারসগুলি সম্পর্কে জানেন। এগুলিকে একত্রিত করা স্নিপেটে ক্রিয়াটি সমান %: @: (+/) @: *:বা sqrt(sum(y.^2))মাতলাব-এ উদাহরণস্বরূপ তৈরি করে।

দৈর্ঘ্য 8 স্নিপেট

$#:I.@:,

একটি কাঁটাচামচ যুক্তিগুলির কোনও রেফারেন্স ছাড়াই 3 ক্রিয়া দ্বারা গঠিত। এটি জেতে যা ট্যাসিট (বিন্দু মুক্ত) প্রোগ্রামিং বলে তাকে অনুমতি দেয় । একটি কাঁটাচামচ f g h, একাকী ক্ষেত্রে (যেমন এই উদাহরণ হিসাবে) সমান (f y) g (h y)। কাটাচামচ হিসাবে, বহুমাত্রিক অ্যারে জে একজন স্বকীয় অংশ "সূচক" একটি ভেক্টর মধ্যে বেশী সূচকের ফেরৎ, কিন্তু এই ধরনের যেমন উচ্চতর মাত্রা প্রসারিত করে না। এই উদাহরণটি শেপ , অ্যান্টিব্যাস এবং I.@:,উচ্চতর মাত্রিক অ্যারেগুলির জন্য কাঁটা প্রয়োগকারী I এর 3 টি টাইন হিসাবে ব্যবহার করে:

 ($#:I.@:,) 5 = i. 5 5 NB. indices of 5 in i. 5 5

দৈর্ঘ্য 9 স্নিপেট

<"1 i.4 6 

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

বিশেষ্য পদটি হ'ল যে কোনও বিশেষ্যটির মাত্রার সংখ্যা, যা ক্রিয়াটি $@$আপনাকে বলতে পারে। উদাহরণস্বরূপ i. 2 3 4র‌্যাঙ্ক 3 এর অ্যারে।

ক্রিয়া র‌্যাঙ্ক এমন পদমর্যাদা যা একটি ক্রিয়া নিজেই প্রয়োগ করবে। প্রতিটি ক্রিয়াটির একটি অভ্যন্তরীণ র‌্যাঙ্ক থাকে যা বেসিক সংমিশ্রনের সাথে অনুসন্ধান করা যেতে পারে । v b. 0monadic, dyadic বাম এবং ক্রিয়াপদের ডায়াডিক ডান র‌্যাঙ্কের জন্য 3 নম্বর প্রদান করে

একটি ক্রিয়া ক্রিয়াপদের র‌্যাঙ্কের সমান র‌্যাঙ্কের বিশেষ্য কোষে কাজ করে এবং একটি বিশেষ্য rank-verb rankফ্রেমের ফলাফলকে প্রতিস্থাপন করে । র‌্যাঙ্ক সংযোগ ব্যবহার করে একটি ক্রিয়াপদের র‌্যাঙ্ক সীমাবদ্ধ করা যেতে পারে , যেমন এখানে করা হয়েছে, র‌্যাঙ্ক _ এ কাজ করার পরিবর্তে বক্সিং র‌্যাঙ্ক 1 কোষ (সারি)। পুরো অ্যারে বক্সিং। র‌্যাঙ্ক সম্পর্কিত আরও তথ্য এখানে পাওয়া যাবে

দৈর্ঘ্যের 10 স্নিপেট

<./ .+~^:_

এই স্নিপেটটি একটি ভার্চাল যা ভারী ডিজিট্রাফের মধ্য দিয়ে সংক্ষিপ্ততম পাথ গণনা করে । এটি সর্বনিম্ন ( <./) এবং ডট সংমিশ্রনের পরিচয় দেয় । ডট সংযোগটি ম্যাট্রিক্স পণ্যটির একটি সাধারণীকরণ, যা হিসাবে লেখা যেতে পারে +/ . *। সাধারণত, যেখানে lv ক্রিয়া v এর বাম র‌্যাঙ্ক হয় u . vতার সমান u@(v"(1+lv,_))বা "ইউ বাম আর্গুমেন্ট কোষ" এবং টোটোতে সঠিক যুক্তির তালিকাগুলিতে "v এর ফলাফলের জন্য u প্রয়োগ হয়"। (উপরের সারিতে দেখুন)

যেমন অভ্যন্তরীণ ক্রিয়াটি <./ .+~আইটেমকে y(i,j)সর্বনিম্ন নূন্যতমের সাথে প্রতিস্থাপন করে y(i,k)+y(k,j)

^:_ একীকরণ পর্যন্ত এই পদক্ষেপ পুনরাবৃত্তি।

উদাহরণ, মূল এবং সংক্ষিপ্ততম পথের দূরত্ব প্রদর্শন:

(]; <./ .+~^:_ ) wtm=: _6]\0 2 5 _ _ _ _ 0 4 1 3 _ _ _ 0 _ _2 _ _ _ 4 0 _ 5 _ _ _ _1 0 6 _ _ _ _ _ 0

দৈর্ঘ্যের 11 স্নিপেট

<.@o.10x^99

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

এই বাক্যাংশটি পাইয়ের 99 টি সংখ্যা দেয় (যদিও 99 দশমিক স্থানে স্থানান্তরিত হয়)। বিশেষ কোডটি নির্ভুল বাক্য নির্ধারণের উপর নির্ভর করে, যা সাধারণত সমতুল্য হবে তা স্নিপেট কোডের মতো যথাযথ নয়: বর্ধিত নির্ভুলতাটি <.o.10x^99 হারায়

দৈর্ঘ্যের 12 স্নিপেট

($-.1:)($,)]

সময়ে সময়ে, আপনি এমন পরিস্থিতিতে শেষ করেছেন যেখানে ডেটা তৈরির কারণে, সিঙ্গেলটন মাত্রা চলছে। মতলবতে স্কিউজ নামে পরিচিত এই হ্যান্ডিল ইউটিলিটি সমস্ত সিঙ্গলটন মাত্রাগুলি আটকায়। কাঁটাচামার বাম টাইনটি ($-.1:)বিনা ছাড়াই সমস্ত মাত্রা দেয়, যখন মাঝেরটি ($,) রাইভেল্ড অ্যারেটিকে পুনরায় আকারযুক্ত আকারগুলিতে আকার দেয়। ডান টাইনটি কেবল ]এটি একটি কাঁটাচামচ তৈরি করতে পরিবেশন করে এবং সঠিক যুক্তিটি উল্লেখ করে।

দৈর্ঘ্যের 13 স্নিপেট

1 :'-u%u d.1'

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

উদাহরণ স্বরূপ:

(_2 + *:) (1 :'-u%u d. 1')^:_ ] 1 NB. root of x^2-1; ] is there to avoid combining _ and 1 into an array.

দৈর্ঘ্যের 14 স্নিপেট

(%-.-*:)t.i.10

টেলর সম্প্রসারণ করে ফিবোনাচি সিরিজের প্রথম 10 নম্বর x / (1 - x - x^2)। হুক %-.-*:দেয় বিশ্লেষণ (y % (-.-*:) y) = (y % ( (1 - y) - *: y)

দৈর্ঘ্যের 15 স্নিপেট

(#{.+//.)!/~i.9

ফিবোনাচি সিরিজের আরেকটি গ্রহণ। এবার অন্য একটি কোণ থেকে; পাস্কেলের ত্রিভুজ '! /~i.9' থেকে শুরু হচ্ছে।

/যখন dyadically অর্থ টেবিল ব্যবহৃত হয় , এটি যুক্তিগুলির প্রতিটি কক্ষের মধ্যে আবদ্ধ ক্রিয়া প্রয়োগ করে, x এবং y আর্গুমেন্টের মধ্যে ক্রিয়াকলাপের সারণী দেয়। এই ক্ষেত্রে !, যেমন dyadically ব্যবহৃত সমাবেশ (অথবা বাইরে)~ক্রিয়া প্রতিবিম্বিত করে তোলে , অর্থাত্। বাম হিসাবে এটি ডান যুক্তি ব্যবহার করুন।

ক্রিয়াপদটি /.একটি বিজোড়, এটি অ্যারের অ্যান্টি-ডায়াগোনালের পাশাপাশি এটি ক্রিয়া প্রয়োগ করে (যেমন এখানে চেষ্টা </.!/~i.5করুন )

সুতরাং এই স্নিপেটটি পাস্কালের ত্রিভুজের 9 টি প্রথম অ্যান্টি-ডায়াগোনালের অঙ্কগুলি গ্রহণ করে, যা ফিবোনাচি সিরিজের আরও একটি ঘটনাই ঘটে।

দৈর্ঘ্যের 16 স্নিপেট

;/@~.,. <"0@#/.~:

ঠিক আছে, আমি কেবল 16 :) এ পেতে একটি স্থান যুক্ত করেছি। এই স্নিপেট কী ব্যবহার করে একটি কাঁটাচামচ দেখায় : আর্গুমেন্টে সমস্ত আইটেম এবং তাদের ফ্রিকোয়েন্সি তালিকাভুক্ত করে ।

x u/. y: অংশ Y যেখানে x অনন্য, অথবা জে করা তোমার দর্শন লগ করা প্রযোজ্য (=x) u@# y, যেখানে =হয় স্ব-শ্রেণীভুক্ত , যা 1 এর ধারণকারী একটি বুলিয়ান অ্যারের অবস্থানের যেখানে তারা প্রদর্শিত উত্পন্ন nub ~। এখানে এটি প্রতিবিম্বিতভাবে প্রয়োগ করা হয়েছে, তাই উপস্থিতিগুলির সংখ্যা গণনা করে y এর প্রতিটি অনন্য আইটেমের উপর ট্যালি চালাচ্ছে

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

মনে রাখবেন যে র্যাঙ্কের বিস্তৃত ধারণা , এই কোডটি কোনও মাত্রিকতার জন্য কাজ করে ।

দৈর্ঘ্যের 17 স্নিপেট

*./ @:(#&>)@C.@A.

জে বিয়োগ সম্পর্কে বিশেষত কয়েকটি আদিম সমর্থন করে:

  • অ্যানগ্রাম এ। মোড়কভাবে এটি অ্যানগ্রগ্রাম সূচকটি খুঁজে পেয়েছে, ক্রমহ্রাসমানভাবে, এটি বাম আর্গুমেন্টে ডান আর্গুমেন্টে অ্যানগ্রগ্রাম সূচক দ্বারা নির্দিষ্ট আদেশকে প্রয়োগ করে।
  • চক্র - Permute সি অনুমোদনের প্রত্যক্ষ এবং চক্র উপস্থাপনের মধ্যে রূপান্তর করে।

এই স্নিপেটটি এমন ক্রিয়াপদ যা একটি এনালগ্রাম সূচককে বাম দিকে (0 এবং এর মধ্যে !#y) এবং ডান আর্গুমেন্টকে y বিন্যাসের জন্য অ্যারে নেয়। এরপরে, এটি চক্রের দৈর্ঘ্যের LCM গণনা করে , অর্থাৎ। পিরিয়ডের পরে আপনি আসল অ্যারেটি ফিরে পাবেন:*./#&>

]n=: (p=:?!9) *./ @:(#&>)@C.@A. i.9 NB. period of a random permutation
p&A.^:n i.9 NB. applies permutation n times.

দৈর্ঘ্য 21

<:@(#/.~)@(i.@#@[,I.)

এই ছোট ক্রিয়াটি "পরিসংখ্যান / বেস" অ্যাড-অন থেকে আসে এবং এটি হিস্টোগ্রাম বলে । এটি ঠিক যেটি করে, বিন ]bn-1,bn]সূচনার একটি তালিকা দেওয়া হলে, বিরল যেখানে বিন সংখ্যা এন এর সূচনা হয় তার মধ্যবর্তী সময়ের মধ্যে সমস্ত উপাত্তের যোগফলকে যোগ করে।

এর অন্তর সন্ধানের জন্য এটি বিরতি সূচকটিI. কাজে লাগায় :

যদি x এর কোনও আইটেমের আকার থাকে তবে x I. y হ'ল সর্বনিম্ন অ-নেতিবাচক জে যেমন j {x ক্রম অনুসারে y অনুসরণ করে, বা # x যদি y অনুসরণ করে {: x ক্রম বা x থাকে কোন আইটেম নেই।

স্নিপেট ১ 16-তে হাইলাইট করা কী হিসাবে প্রতিটি ব্যবধানের মোট তৈরি করা হয় ।

ট্রাইজে ডটকমের সাথে সংযুক্ত স্নিপেট এই হিস্টগ্রামটি ব্যবহার করে কেন্দ্রীয় সীমাবদ্ধ তত্ত্বটি দেখায়:

(bins=:(%~>:@i.)10) ( [ (graph=:(,&":"0 1 '#'#"0 1~])) (histogram=:<:@(#/.~)@(i.@#@[,I.)) ) (+/%#) ?5 200 $ 0

দৈর্ঘ্য 22

=,&(+/)(~:#[)e.&~.~:#]

জে মজাদার এটি একটি মাস্টারমাইন্ড ইঞ্জিন প্রয়োগ করে, বাম আর্গুমেন্ট হিসাবে একটি গোপন অ্যারে এবং ডান হিসাবে অনুমান করে। ফিরিয়ে দেওয়া মানগুলি হ'ল সাদা এবং কালো পেগের সংখ্যা। সরাইয়া নেওয়া:

NB.   ExactMatch: checks where digits correspond:
ExactMatch =: =

NB.   GoodDigitWrongPlace: Copies non-matched numbers from both arguments (left and right
NB.   pairs of parentheses, and checks them for same elements(e.), after eliminating
NB.   doubles in both (&~.)
GoodDigitWrongPlace =: (~: # [) (e.&~.) (~: # ])

NB.   Piecing the conditions together, after summing the booleans:
mm =: ExactMatch ,&(+/) GoodDigitWrongPlace

মত ব্যবহার করা

secret (=,&(+/)(~:#[)e.&~.~:#]) guess

কোথায় secretএবং guessকোন অ্যারে হয়। এটি আসলে যে কোনও ডেটা টাইপের সাথে কাজ করে।


17
ঠিক আছে, হয় আপনি অদ্ভুত চিহ্নগুলির অপঠনযোগ্য apੇਰ পেতে পারেন বা আপনি ASCII প্রতীকগুলির অপঠনযোগ্য heੇਰ পেতে পারেন। আপনার বিষ বাছুন।
জন ডিভোরাক

16
@ জনডভোরাক আপনি যতক্ষণ না শিখেন সমস্ত ভাষাগুলি অপঠনযোগ্য। ;-)
গ্যারেথ

5
আমি দীর্ঘ, বর্ণনামূলক নামগুলি সহায়তা কোড বোঝার জন্য ভাবতাম। তারপর আমি ছিল আলোকিত
hoosierEE

@Gareth কিন্তু অপাঠ্য এমনকি সব পরে আপনি তাদের শিখেছি। কোনও নাম রাখবে না।
flawr

45

আরপিএল (রেডস্টোন প্রোগ্রামিং ভাষা) [এবং মাইনক্রাফ্ট]

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

Factoid:

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

দৈর্ঘ্য 1:

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

দৈর্ঘ্য 2:

রেডস্টোন প্রদীপের সাথে সংযুক্ত একটি বোতামটি আপনার খুব বেসিক বিড়াল প্রোগ্রামটি থেকে অনেক বেশি । এটি ইনপুট নেয় (একটি বাটন বা লিভার সহ, হয় 0বা 1( offবা on)) এবং এটি প্রদীপ থেকে আলো হিসাবে হয় 0বা 1( offবা on) আকারে আউটপুট দেয় ।

এখানে চিত্র বর্ণনা লিখুন

দৈর্ঘ্য 3:

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

দৈর্ঘ্য 4

এই "স্নিপেট" আসলে দুটি ধারণা দেখায়: বিলম্ব এবং নট গেট। বিলম্ব নির্দিষ্ট রেডস্টোন উপাদান ব্যবহার করে তৈরি করা হয় যাতে রেডস্টোন-টিকের বিলম্ব হয়। একটি রেডস্টোন-টিক এক সেকেন্ডের দশমাংশের সমান। বিভিন্ন রেডস্টোন উপাদানগুলির বিভিন্ন বিলম্ব থাকে: একটি টর্চের 1rt বিলম্ব হয় (1 রেডস্টোন-টিক), একটি তুলনাকারীর 1rt বিলম্ব হয়, একটি পুনরাবৃত্তকারী এটি কীভাবে সেট আপ করা হয় তার উপর নির্ভর করে 1, 2, 3 বা 4rt বিলম্ব হতে পারে। এই উদাহরণে, রেডস্টোন রিপিটারটি 4rt বিলম্বে সেট করা আছে।

এরপরে নট গেট। নট গেটটি একটি ইনপুট এটিকে বিপরীতমুখী করে। সুতরাং এই সেট আপে, ইনপুটটি বন্ধ থাকলে আউটপুট চালু হবে এবং ইনপুট চালু থাকলে আউটপুট বন্ধ হবে।

দৈর্ঘ্য 5

ওআর গেটটি মিনক্রাফ্টে সম্পাদন করা খুব সহজ। দুটি ইনপুট একই আউটপুটে সংযুক্ত। হ্যাঁ, ওটাই. কোনও মজার কৌশল নয় বা কিছুই, এটি বেশ সহজ।

এখানে চিত্র বর্ণনা লিখুন

দৈর্ঘ্য 6

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

এখানে চিত্র বর্ণনা লিখুন


7
আপনি 13 টি উচ্চ বিদ্যালয়, আমি 10 মায়ার প্রোগ্রাম করতে পারি?
Rɪᴋᴇʀ

4
আপনার প্রোগ্রামগুলির কোনওটিই আরপিএলে লিখিত নয়, সুতরাং এটি এটিকে পাস করবেন না। এটি খালি মাইনক্রাফ্ট "কোড"।
mbomb007

2
আপনার 14 ঘাটতির ঘাটতি রয়েছে m8। আপনার মনে কী আছে তা আমি দেখতে চাই;)
কনার ও'ব্রায়ান

4
আপনি 21 টি উর্ধ্বতন, আমি 15 মায়ার প্রোগ্রাম করতে পারি?
wizzwizz4

1
আপনি 29 উর্ধ্বতন, আমি 23 মায়ার প্রোগ্রাম করতে পারি?
bb010g

42

টিআইবি-বেসিক

[ভাষাটি কোন ক্যালকুলেটর ব্যবহার করা হয় তার ভিত্তিতে পরিবর্তিত হয় তবে অন্যথায় উল্লিখিত না হলে এগুলি টিআই -৪৪ ব্যবহার করবে]]

দৈর্ঘ্যের 31 স্নিপেট

Menu("","1",A,"2",B
Lbl A
Lbl B

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

Menu("CHOOSE VALUE","AREA",A,"CIRCUMFERENCE",C
Lbl A
Disp πR²
Stop
Lbl C
2πR

Lblএছাড়াও শাখা জন্য ব্যবহার করা যেতে পারে Goto। মেনুগুলির কিছু সীমাবদ্ধতা রয়েছে যা সেগুলি ব্যবহারে বিরক্তিকর করে তোলে: তবে কেবলমাত্র সাতটি মেনু আইটেম থাকতে পারে এবং প্রতিটি শিরোনাম সর্বাধিক চৌদ্দ অক্ষর হতে পারে, তাই পুরো জিনিসটি একটি পর্দায় ফিট করে।

দৈর্ঘ্যের 29 স্নিপেট

Real
√(-16
a+bi
Ans
re^θi
Ans

Real(ডিফল্টরূপে) ক্যালকুলেটরটিকে আসল সংখ্যা মোডে রাখে, সুতরাং জটিল সংখ্যার সাথে জড়িত গণনাগুলি একটি NONREAL ANSত্রুটি ফেলে । যখন রাখা a+biমোড, ক্যালকুলেটর জটিল সংখ্যার যদি প্রযোজ্য হয়, তাই দ্বিতীয় উদাহরণ আয় যেমন উত্তর প্রদর্শন 4ire^θiমোড আয়তক্ষেত্র স্থানাঙ্কের পরিবর্তে মেরু ব্যবহার করে, সুতরাং এটি আউটপুট হয় 4e^(1.570796327i)

দৈর্ঘ্যের 23 স্নিপেট

If A≥9
Then
1→X
7→Y
End

এটি কেবল একটি সাধারণ শর্তসাপেক্ষ, যদিও কোনও Elseবিবৃতি থাকতে পারে । Thenএবং Endএটি কেবল একটি বিবৃতি হলে প্রয়োজন হয় না।

দৈর্ঘ্যের 21 স্নিপেট

(-B+√(B²-4AC))/(2A)→X

প্রত্যেকের প্রিয়, চতুর্ভুজ সূত্র। স্টোর হিসাবে একটি দ্বিঘাত সমীকরণ প্রথম সমাধান Xএ, অভিমানী A, B, এবং গ তাদের নিজ নিজ ভেরিয়েবলের মধ্যে সংরক্ষণ করা হয় হিসাবে, কুঠার 2 + + bx + +

দৈর্ঘ্যের 20 স্নিপেট

Shade(|X/2|-3,5-X²,0

এটি বেশ কয়েকটি alচ্ছিক প্যারামিটার সহ দুটি ফাংশনের ছেদটি ছায়ায়িত করে: x এর নূন্যতম এবং সর্বাধিক মান এবং শেডিং লাইনের মধ্যবর্তী দিক এবং দূরত্ব।

দৈর্ঘ্যের 18 স্নিপেট

LinReg(ax+b) L1,L2

এখানে আমরা লিনিয়ার রিগ্রেশন সমীকরণ বা লিনিয়ার সমীকরণটি নির্ধারণ করি যা পয়েন্টের একটি গ্রুপের সাথে সবচেয়ে ভাল মেলে, এক্স-মানগুলি তালিকা হিসাবে সঞ্চিত L1এবং y- মানগুলিতে L2। চতুর্ভুজ, ঘনক এবং তাত্পর্যপূর্ণ সহ আরও অনেক রিগ্রেশন বিকল্প উপলব্ধ।

দৈর্ঘ্যের 17 স্নিপেট

dbd(1.2711,1.2115

এটি দুটি তারিখের মধ্যে দিনের সংখ্যা গণনা করে, এই ক্ষেত্রে 27 শে জানুয়ারী, 2011, যে দিন এই সাইটটি শুরু হয়েছিল এবং 21 শে জানুয়ারী, 2015 এই দিনটি লেখা হয়েছিল। (অলসতার জন্য এটি 1455 দিন)) তারিখগুলি এনকোড করার উপায়টি কিছুটা অদ্ভুত: ডিডিএমএমওয়াইওয়াই বা এমএমডিডিওয়াই, অগ্রণী জিরোগুলি optionচ্ছিক।

দৈর্ঘ্যের 16 স্নিপেট

For(A,0,5
Disp A

এটি ভাষার প্রোগ্রামিংয়ের দুটি অংশ দেখায়। প্রথমটি হ'ল আপনার সাধারণ forলুপটি for(var A=0;a<5;a++)অন্যান্য ভাষার মতো। ( Endলুপটি ভেঙে ফেলার জন্য আপনার কমান্ডটিও ব্যবহার করা উচিত )) দ্বিতীয়টি স্ব-ব্যাখ্যামূলক: এটি Aলুপের কারণে এই ক্ষেত্রে 5 বার প্রদর্শিত হয় ।

দৈর্ঘ্যের 15 স্নিপেট

Y1=|X³-4|
Y2=3X

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

চিত্রলেখ

দৈর্ঘ্যের 14 স্নিপেট

[[1,2][34,5]]T

বন্ধনী ম্যাট্রিক তৈরি করতে ব্যবহৃত হয় এবং ম্যাট্রিক্স Tস্থানান্তর করে:

[[1 34]
 [2 5]]

দৈর্ঘ্যের 13 স্নিপেট

dayOfWk(9,1,6

এটি 6 ই জানুয়ারী, জানুয়ারির সপ্তাহের দিনটি আবিষ্কার করে। আউটপুট এমন একটি সংখ্যা যেখানে 1 রবিবার, 2 সোমবার এবং আরও অনেক কিছু। এই নির্দিষ্ট তারিখটি একটি মঙ্গলবার ছিল, সুতরাং আউটপুট 3

দৈর্ঘ্যের 12 স্নিপেট

Circle(1,3,5

প্রাথমিক অঙ্কন সরঞ্জামগুলির প্রথমটি, এটি গ্রাফের কেন্দ্র (1,3) এবং 5 এর ব্যাসার্ধের সাথে একটি বৃত্ত আঁকবে।

দৈর্ঘ্যের 11 স্নিপেট

randInt(0,8

এটি 0 থেকে 8 এর মধ্যে একটি (সিউডো-) এলোমেলো পূর্ণসংখ্যার উত্পন্ন করে। একটি alচ্ছিক তৃতীয় যুক্তি রয়েছে যা জানায় যে কতগুলি পূর্ণসংখ্যা উত্পন্ন করা যায়। সাধারণ এবং দ্বি-দ্বি বিতরণের জন্য একটি, এলোমেলো ম্যাট্রিক্সের জন্য একটি এবং একটি পুনরাবৃত্তি না করে এলোমেলোভাবে অর্ডার করা তালিকার জন্য আরও কয়েকটি এলোমেলো কাজ রয়েছে। randIntহিসাবে নম্বর মজুত করে বীজযুক্ত করা যেতে পারে rand: 2→rand

দৈর্ঘ্যের 10 স্নিপেট

4>5 or 2≠7

এখানে আমাদের টিআই-বেসিকের (ইন) সাম্যতা এবং লজিক অপারেটর রয়েছে। অসমতার বক্তব্যগুলি প্রথমে মূল্যায়ন করে 0 or 1এবং orযদি উভয় পক্ষই সত্য হয় তবে সত্যটি প্রতীয়মান হয়, সুতরাং এটি প্রদর্শিত হয় 1

দৈর্ঘ্য 9 স্নিপেট

.656▶F◀▶D

এটি দশমিক থেকে ভগ্নাংশ এবং বিপরীতে রূপান্তর করতে পারে, যা খুব দরকারী। ডেডিকেটেড ▶Fracএবং ▶Decফাংশনগুলি রয়েছে যা কেবল এক পথে চলে। 82/125এই ক্ষেত্রে প্রিন্ট ।

দৈর্ঘ্য 8 স্নিপেট

lcm(14,6

এটি 14 এবং 6 এর সর্বনিম্ন সাধারণ একাধিক মুদ্রণ করে , যা 42।

দৈর্ঘ্যের 7 স্নিপেট

getDate

অত্যন্ত স্ব-বর্ণনামূলক, এক্ষেত্রে কেবল বর্তমান সিস্টেমের তারিখকে তালিকা হিসাবে মুদ্রণ করে {2015 1 19}

দৈর্ঘ্যের 6 টি স্নিপেট

√({4,9

অ্যারেগুলি (বা তালিকাগুলি) চারদিকে ধনুর্বন্ধনী দ্বারা বেষ্টিত এবং কমা দ্বারা পৃথক করা হয়। এই অনুরূপ mapঅনেক ভাষায় এর ফাংশন, যেখানে এটি তালিকাটির প্রতিটি উপাদান মাধ্যমে iterates এবং এই ক্ষেত্রে বর্গমূল এটির ধনুর্বন্ধনী বাইরে অপারেশন প্রযোজ্য, তাই ফল {2 3}। নোট করুন বন্ধ করার বন্ধনীগুলি alচ্ছিক, তাই এখন থেকে এগুলি বাদ দেওয়া হবে।

দৈর্ঘ্য 5 স্নিপেট

4iii6

আমাদের এখানে বেশ কয়েকটি দুর্দান্ত জিনিস চলছে। প্রথমত, বাস্তব অংশ, 4 এবং 6 গুন করা হয়, এবং তারপর কাল্পনিক অংশের গুন করা হয়: i^3, অথবা -i। এগুলি বহুগুণে দেয় -24i। এটি মজাদার চেহারার জুস্টপজিশন গুণ এবং টিআই-বেসিকের কাল্পনিক সংখ্যার পরিচালনা পরিচালনা প্রদর্শন করে।

দৈর্ঘ্য 4 স্নিপেট

8°5′

এটি 8 ডিগ্রি, 5 টি অর্কমিনিটস, যা ডিগ্রি হিসাবে রূপান্তরিত হয় 8.0333...

দৈর্ঘ্য 3 স্নিপেট

8→T

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

দৈর্ঘ্য 2 স্নিপেট

4M

ম্যাথামেটিকায় একইভাবে, আপনি জাস্টস্প্যাজেশন দিয়ে গুণ করতে পারেন, *প্রয়োজন নেই। সমস্ত ভেরিয়েবলগুলি ডিফল্টরূপে 0 তে শুরু হয়, সুতরাং যদি আপনি সেই পরিবর্তনশীলটিতে অন্য কিছু সঞ্চয় না করে থাকেন তবে 0 টি আউটপুট আসবে (স্নিপেট 3 দেখুন)।

দৈর্ঘ্য 1 স্নিপেট

e

এটি ইউলারের সংখ্যার জন্য ধ্রুবক , যা প্রদর্শিত হয় 2.718281828

Factoid

চলকগুলি নির্দিষ্ট কিছু ডেটাটাইপগুলি কেবল সঞ্চয় করতে পারে। উদাহরণস্বরূপ, A- Z(এবং θ) সংখ্যাসূচক মানগুলি সংরক্ষণ করুন str0- str9স্ট্রিং স্ট্রিং এবং [A]- [J]ম্যাট্রিকেস (2-মাত্রিক অ্যারে) সঞ্চয় করুন।


যাইহোক, লোয়ার কেস n(না n) ভেরিয়েবল হিসাবেও ব্যবহার করা যেতে পারে।
Ypnypn

মজাদার. আমি কখনও এই পরিবর্তনশীল ব্যবহার করি নি।
নিনজাবিয়ারমোনকি

3
str01 টি চরিত্র বা 4 হওয়ার বিষয়ে যে কেউ তর্ক করতে পারে টিআই-বেসিকের সমস্ত নির্দেশাবলী 1 অক্ষর দীর্ঘ।
ইসমাইল মিগুয়েল

@ ইসমাইল মিগুয়েল আমি সে সম্পর্কে ভেবেছিলাম তবে সেগুলি 1 বা 2 বাইট এবং আমি অক্ষরগুলি সাধারণভাবে গণনা করার সিদ্ধান্ত নিয়েছি।
নিনজা বিয়ারমোনকি

1
আপনার সিদ্ধান্তের প্রতি আমি শ্রদ্ধাশীল. এটি এক্ষেত্রে অনেক সাহায্য করে। আমি আমার পুরানো টিআই -৩৮ তে সত্যই প্রোগ্রামিং উপভোগ করেছি। (আমি এমনকি এটিতে একটি পেইন্ট প্রোগ্রামও ডিজাইন করেছি!)
ইসমাইল মিগুয়েল

41

জিএনইউ শেড

আমি আরও প্রতিবন্ধী প্রয়োজন স্ব-চাপিয়ে দিচ্ছি - সমস্ত স্নিপেটগুলি সম্পূর্ণ sedপ্রোগ্রাম হবে be

Factoid

sed হয় একটি টুরিং-সম্পূর্ণ ভাষা। এখানে একটি প্রমাণ।

দৈর্ঘ্য 0 স্নিপেট

আমি মনে করি না যে একটি দৈর্ঘ্যের 0 টি স্নিপেট কঠোরভাবে প্রয়োজনীয়, তবে যেহেতু এটি বাস্তবে সেডে কিছু করে, তাই এখানে:

শেড হ'ল "স্ট্রিম ইডিটর", অর্থাৎ এটি এসটিডিইএন থেকে স্ট্রিমটি (লাইন-বাই-লাইন) পড়ে, সম্পাদনা করে, তারপর স্টাডিআউটে আউটপুট দেয়। শূন্য দৈর্ঘ্যের সেড প্রোগ্রামটি STDIN কে কেবল STDOUT এ অনুলিপি করে। সুতরাং catউপযোগটি সেড দ্বারা অনুকরণ করা যেতে পারে। নিম্নলিখিত সমতুল্য:

cat a.txt b.txt > c.txt

এবং

sed '' a.txt b.txt > c.txt

দৈর্ঘ্য 1 স্নিপেট

=

এই সেড প্রোগ্রামটি প্রতিটি লাইনের লাইন নম্বরটি STDOUT এ মুদ্রণ করে। এটি প্রায় সমতুল্য:

nl

অথবা

cat -n

যদিও সেড সংস্করণটি নিজের লাইনে লাইন নম্বরটি রাখে।

দৈর্ঘ্য 2 স্নিপেট

5q

STDIN কে STOUT অনুলিপি করুন এবং qলাইন 5 এর পরে ইউট করুন এটি সমান:

head -n5

আপনি এখানে কিছুটা নিদর্শন দেখতে শুরু করছেন - sedস্ট্যান্ডার্ড কোর-ইউসস সরঞ্জামগুলির অনেকগুলি অনুকরণ করতে ব্যবহার করা যেতে পারে।

দৈর্ঘ্য 3 স্নিপেট

iHi

iপ্রতিটি লাইনের আগে "হাই \ n" নরসেটগুলি। সাধরণ।

দৈর্ঘ্য 4 স্নিপেট

/a/d

সেডের প্রচুর শক্তি তার রেজেক্স সক্ষমতায়। এই প্রোগ্রামটি রেগেক্সের aসাথে মিলে সমস্ত লাইনগুলি dস্ট্রিম থেকে একত্রে পরিণত করে। অন্য সমস্ত লাইনগুলি এখনও STDOUT এ আউটপুট থাকবে। এটি সমান:

grep -v "a"

দৈর্ঘ্য 5 স্নিপেট

:l;bl

এটি একটি অসীম লুপ। আমরা সকলেই সিপিইউ-হগিং অসীম লুপগুলি পছন্দ করি। একটি লেবেল সংজ্ঞায়িত করে l, তারপরে bরাঞ্চগুলি (জাম্প)। সীমাহীনভাবে.

দৈর্ঘ্য 7 স্নিপেট

s/a/A/g

ডিফল্টরূপে, সেড sকমান্ডগুলি প্রয়োগ করে যে এটি প্রতিটি লাইনে কেবল প্রথম ঘটনাটির সাথে মেলে। আপনার যদি কোনও লাইনের প্রতিটি সংঘর্ষের সাথে মিলিয়ে (এবং বিকল্প) প্রয়োজন হয়, তবে কমান্ডের gশেষে পতাকাটি এটি sকরবে।

দৈর্ঘ্য 8 স্নিপেট

y/01/10/

অল্প ব্যবহৃত yকমান্ড trশেল ইউটিলিটির সাথে মিল (যদিও যথেষ্ট নমনীয় নয়)। এই প্রোগ্রামটি সমস্ত 0এর সাথে 1এবং এর বিপরীতে স্যুইচ করবে ।

দৈর্ঘ্য 9 স্নিপেট

1!G;$p;h

এই স্নিপেটটি আসলে 8 বাইট, তবে ডিফল্ট আউটপুট দমন করতে -n প্যারামিটারের প্রয়োজন হয়, তাই স্ট্যান্ডার্ড কোড-গল্ফ নিয়ম অনুসারে, আমি এটি 9 হিসাবে গণনা করছি program এই প্রোগ্রামটি স্ট্রিমের লাইনগুলিকে বিপরীত করে। তাই:

sed -n '1!G;$p;h'

একেবারে সমান:

tac

দৈর্ঘ্য 10 স্নিপেট

s/[ <TAB>]+$//

এটি (ভুল) দৈর্ঘ্যের 6 টি স্নিপেটের পুনর্বিবেচনা। এই স্ট্রিপগুলি লাইন থেকে হোয়াইটস্পেস (স্পেস এবং TABs) অনুসরণ করছে।



আপনার ভোট বেশি আছে। আমরা কি আরও কিছু পেতে পারি?
লুসার droog

2
আপনার মুখোমুখি 404'ed।
ওয়াজল

1
নিস, কিন্তু দয়া করে এই ব্যবহারের গনুহ এক্সটেনশন অনেক নোট এবং মান-বিশেষভাবে দৈর্ঘ্য 3 (আদর্শ হবে না i\<newline>Hi<newline>), দৈর্ঘ্য 5 (মান হতে হবে sed -e :l -e blবা :l<newline>bl<newline), এবং দৈর্ঘ্য 10 (যা দরকার +একটি প্রমাণিত *এ সব কাজ করতে)। মনে রাখবেন যে, দৈর্ঘ্য 9 স্নিপেট -n '1!G;$p;h' হয় , মানক যেহেতু tacহয় না । :)
ওয়াইল্ডকার্ড

1
@ উইল্ডকার্ড হ্যাঁ - আমি এটিকে জিএনইউ সেডের মধ্যে সীমাবদ্ধ করেছি।
ডিজিটাল ট্রমা

39

পাইথন

( এমবম্ব ২০০7 -এর পোস্টে ইতিমধ্যে পাইথন স্নিপেটের আধিক্য রয়েছে, তবে আমি ভেবেছিলাম যে আমি কিছু বিশুদ্ধ তথ্য দিয়ে চিপ করব)

Factoid

পাইথন হ'ল পাঠ্যতার উপর জোর দিয়ে একটি গতিশীল টাইপ করা ভাষা।

দৈর্ঘ্য 1 স্নিপেট

1

পাইথন 3, উপরোক্ত সমতূল্য Trueইন্দ্রিয় যে 1 == True(এবং0 == False ) । দ্রষ্টব্য যে পাইথন 2 এ এটির প্রয়োজন নেই, যেখানে আপনি এর মানটি নতুন করে সংজ্ঞায়িতTrue করতে পারেন ।

দৈর্ঘ্য 2 স্নিপেট

<>

<>এটি একটি অপ্রচলিত তুলনা অপারেটর সমতুল্য !=। এটি এখনও পাইথন 2 এ কাজ করে (যদিও এর ব্যবহার নিরুৎসাহিত করা হয়) এবং পাইথন 3 থেকে পুরোপুরি সরানো হয়েছিল।

দৈর্ঘ্য 3 স্নিপেট

...

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

array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])

তারপরে a[..., 0](সমতুল্য a[:,:,0]) সমস্ত প্রথম উপাদান দেয়:

array([[1, 4], [7, 10]])

পাইথন 3-এ ...আক্ষরিকটি স্লাইসিং সিনট্যাক্সের বাইরে ব্যবহার করা যেতে পারে, যা মজাদারভাবে আপনাকে এটিকে "করণীয়" চিহ্নিতকারী হিসাবে passবা এর জায়গায় ব্যবহার করতে দেয় NotImplemented:

def f(x):
    ... # TODO

দৈর্ঘ্য 4 স্নিপেট

(1,)

পাইথনের এক-উপাদান উপাদান up

পাইথনের তালিকাগুলি রয়েছে (উদাঃ [1, 2, 3, 4]) যা পরিবর্তনীয় এবং টিপলস (উদাঃ (1, 2, 3, 4)) যা im পরিবর্তনযোগ্য। টিপলসগুলির জন্য একটি সাধারণ ব্যবহার হ'ল ডিকশনারি কী হিসাবে, কারণ তালিকাগুলি হ্যাশযোগ্য নয় ble

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

দৈর্ঘ্য 5 স্নিপেট

0or x

এই স্নিপেটে কয়েকটি জিনিস চলছে, তাই আসুন একবার দেখে নেওয়া যাক!

orভালো হয় ||বিভিন্ন ভাষায়। পাইথনে A or Bশর্ট সার্কিট, সত্যবাদী হলে ফিরতে A(মূল্যায়ন না করে B) A, অন্যথায় এটি ফিরে আসে B। উদাহরণস্বরূপ, 1 or xসর্বদা সত্য 1হিসাবে সর্বদা ফিরে আসে , 1এবং xসংজ্ঞায়িত না হলেও এমনকি কাজ করে । অন্যদিকে, 0 or xহয় সংজ্ঞায়িত xহলে ফেরত xদেয়, বা NameErrorযদি তা না হয় তবে ছুড়ে দেয় ।

গল্ফ করার সময়, আমরা সাধারণত একটি সংখ্যা এবং একটি or, যেমন 1 or xহয়ে ওঠার মধ্যে শ্বেত স্থান ছেড়ে দিতে পারি 1or x। এটি সম্ভব কারণ কারণ 1orএটি একটি অবৈধ পাইথন সনাক্তকারী হিসাবে তৈরি করে একটি অঙ্ক দিয়ে শুরু হয়।

তবে একটি ব্যতিক্রম রয়েছে - 0orযা রহস্যজনকভাবে একটিকে ছুঁড়ে ফেলে SyntaxError। কেন? কারণ পাইথনের অক্টাল লিটারালগুলি 0o(উদাহরণস্বরূপ 0o20 == 16) দিয়ে শুরু হয় এবং পার্সার যখন পৌঁছায় তখন দমবন্ধ হয়ে যায় r!

দ্রষ্টব্য: পাইথন 2-তে, অষ্টাল আক্ষরিকাগুলি একটি শীর্ষস্থানীয় শূন্যের সাথেও শুরু হতে পারে, যেমন 020

দৈর্ঘ্যের 6 টি স্নিপেট

*x,y=L

এই স্নিপেট পাইথনে একটি বিশেষ ধরণের অ্যাসাইনমেন্ট প্রদর্শন করে, যেখানে Lএকটি তালিকা, টুপল বা পুনরুক্তযোগ্য অন্য কোনও ধরণের।

পাইথনে, আপনি এই জাতীয় টিপল এবং তালিকাকে "আনপ্যাক" করতে পারেন:

a,b = [1,2]

এটি 1 থেকে a2 এবং 2 কে নির্ধারিত করে b। এই বাক্য গঠনটি একাধিক অ্যাসাইনমেন্টের জন্যও ব্যবহৃত হয়, যেমন

a,b = b,a+b

যেটি একটি প্রোগ্রাম লিখতে কার্যকর হয় যা ফিবোনাচি সিরিজের গণনা করে।

যদি উভয় পক্ষের দৈর্ঘ্য মেলে না, তবে একটি ValueErrorনিক্ষেপ করা হবে। যাইহোক, পাইথন 3 একটি নতুন সিনট্যাক্স প্রবর্তন করেছে, এক্সটেন্ডেড পুনরাবৃত্তিযোগ্য আনপ্যাকিং (বা আরও কথোপকথন "স্টারার্ড অ্যাসাইনমেন্ট") যা আপনাকে এই জাতীয় জিনিসগুলি করতে দেয়:

*x,y = [1, 2, 3, 4, 5]

এই নির্ধারণ yশেষ উপাদান, 5, এবং xথেকে তালিকার বাকি , অর্থাত্ [1, 2, 3, 4]। আপনি এমনকি এর মতো কিছু করতে পারেন:

a,b,*c,d,e = [1, 2, 3, 4, 5, 6, 7]

যা 1 কে a, 2 থেকে b, [3, 4, 5]থেকে c, 6 থেকে d7 এবং 7 কে নির্ধারিত করে e

দৈর্ঘ্যের 7 স্নিপেট

zip(*x)

zip এটি এমন একটি ফাংশন যা প্রচুর তালিকাগুলি গ্রহণ করে এবং ভাল, সেগুলি জিপ আপ করে:

>>> zip([1, 2, 3], [4, 5, 6])
[(1, 4), (2, 5), (3, 6)]

দ্রষ্টব্য: পাইথন 3-এ zipপরিবর্তে কোনও বস্তু ফিরে আসে, সুতরাং আপনি যদি উপরে একটি তালিকা চান তবে আপনাকে কলটি মোড়াতে হবেlist()

আপনার কাছে দুটি বা আরও বেশি সম্পর্কিত তালিকা থাকলে এটি বেশ সুবিধাজনক ফাংশন এবং আপনি তাদের নিজ নিজ এন্ট্রিগুলিকে লিঙ্ক করতে চান।

এখন বলুন আপনি তালিকাটি আনজিপ করতে চান - আপনি কীভাবে এটি করবেন? আমরা zipআবার ব্যবহার করার চেষ্টা করতে পারি , তবে দুর্ভাগ্যক্রমে এটি দেয়:

>>> zip([(1, 4), (2, 5), (3, 6)])
[((1, 4),), ((2, 5),), ((3, 6),)]

সমস্যাটি হ'ল সবকিছুই একটি তালিকায় zipথাকে তবে পৃথক তালিকাগুলি পৃথক ফাংশন আর্গুমেন্ট হিসাবে গ্রহণ করে। এটি ঠিক করার জন্য আমরা *স্প্ল্যাট অপারেটরের সাথে পরিচয় করিয়ে দেব, যা একটি তালিকা / টুপল / ইত্যাদি গ্রহণ করে। এবং তাদের ফাংশন আর্গুমেন্ট হিসাবে আনপ্যাক করে:

f(*[1,2]) ==> f(1, 2)

এবং ফলাফল:

>>> zip(*[(1, 4), (2, 5), (3, 6)])
[(1, 2, 3), (4, 5, 6)]

দৈর্ঘ্য 8 স্নিপেট

x='a''b'

প্রথমবার যখন আমি এটি দেখলাম তখন আমাকে কিছুটা পিছনে নেওয়া হয়েছিল - একে অপরের পাশে দুটি স্ট্রিং থাকার অর্থ কী? উত্তরটি সহজ ছিল:

>>> x
'ab'

পাইথন কেবল দুটি স্ট্রিংকে সম্মতি জানায়! এটি পঠনযোগ্যতার জন্য অত্যন্ত দরকারী, যেহেতু এটি আপনাকে দীর্ঘ দীর্ঘ স্ট্রিংগুলি ভেঙে ফেলার অনুমতি দেয় (আশেপাশের বন্ধনীগুলি নোট করুন):

x = ('This is a very long sentence, which would not look very nice '
     'if you tried to fit it all on a single line.')

দৈর্ঘ্য 9 স্নিপেট

0!=2 is 2

আপনি ইতিমধ্যে জেনে নেয় যে, পাইথন তুলনা অপারেটরদের chaining পারবেন, তাই 5 < x <= 7একমাত্র সত্য যদি 5 < xএবং x <= 7। যদি আপনি তা না জানতেন ... তবে অবাক!

যাইহোক, কম পরিচিত হ'ল যেহেতু is/ is not/ in/ not inএছাড়াও তুলনামূলক অপারেটর, তারাও বেঁধে রাখা যেতে পারে। অন্য কথায়, উপরের কোডটি সমান (0 != 2) and (2 is 2), যা True

দ্রষ্টব্য: 2 is 2যদিও অর্ধেকের সাথে কয়েকটি সূক্ষ্মতা রয়েছে , যেহেতু isদুটি জিনিস একই জিনিস , দুটি জিনিস একই মান নয় কিনা তা যাচাই করে । পাইথন ছোট পূর্ণসংখ্যার ক্যাশে তাই 1+1 is 2হয় True, কিন্তু 999+1 is 1000হয় False!

দৈর্ঘ্যের 10 স্নিপেট

x=[];x+=x,

আপনি নিজেই একটি তালিকা যুক্ত করলে কী হয়? আমরা যদি মুদ্রণের চেষ্টা করি তবে আমরা xপাই:

[[...]]

ভাগ্যক্রমে, পাইথনগুলি printপুনরাবৃত্ত তালিকাগুলি মুদ্রণের চেষ্টা করে বিস্ফোরিত না হওয়ার পক্ষে যথেষ্ট বুদ্ধিমান। তারপরে আমরা প্রচুর মজাদার জিনিসগুলি করতে পারি, যেমন:

>>> x[0][0][0][0][0]
[[...]]
>>> x[0] == x
True

এই বৈশিষ্ট্যটি অভিধানের সাথেও কাজ করে এবং এটি চক্রের সাহায্যে ডেটা কাঠামো তৈরির একটি উপায়, যেমন একটি গ্রাফ।

দৈর্ঘ্যের 11 স্নিপেট

help(slice)

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

উদাহরণস্বরূপ, help(slice)নিম্নলিখিত তথ্য দেয় (এটি বেশ দীর্ঘ থেকে ছাঁটা হয়েছে):

Help on class slice in module __builtin__:

class slice(object)
 |  slice(stop)
 |  slice(start, stop[, step])
 |  
 |  Create a slice object.  This is used for extended slicing (e.g. a[0:10:2]).
 |  
 |  Methods defined here:
 |  
 |  __cmp__(...)
 |      x.__cmp__(y) <==> cmp(x,y)
 |  
 |  __getattribute__(...)
 |      x.__getattribute__('name') <==> x.name
 |
 | ...

হিসাবে হিসাবে slice, আমরা দেখতে পাচ্ছি আমরা sliceইনডেক্সিংয়ের জন্য অবজেক্ট তৈরি করতে পারি । উদাহরণ স্বরূপ:

>>> L = list(range(10))
>>> L[slice(2, 5)]         # L[2:5]
[2, 3, 4]
>>> L[slice(2, None)]      # L[2:]
[2, 3, 4, 5, 6, 7, 8, 9]

ডিবাগিংয়ের জন্য আরেকটি দরকারী ফাংশন হ'ল dir(), যা যুক্তি ছাড়াই ডাকা হলে বর্তমান সুযোগে সমস্ত নাম ফেরত দেয় এবং যখন আর্গুমেন্টের সাথে ডাকা হয় তখন প্রদত্ত বস্তুর সমস্ত বৈশিষ্ট্য প্রদান করে।

দৈর্ঘ্যের 12 স্নিপেট

round(5.0/2)

এটি কী মূল্যায়ন করে? উত্তরটি আপনার পাইথন সংস্করণের উপর নির্ভর করে!

পাইথন 2 এ, দুটি পূর্ণসংখ্যার মধ্যে বিভাজনের ফলাফল পূর্ণসংখ্যা বিভাগে (অর্থাত্ 5/2 == 2) যেখানে পাইথন 3 এ আমরা ভাসমান বিভাগ পাই (যেমন 5/2 == 2.5)। তবে এটি একটি ফ্লোট এবং একটি পূর্ণসংখ্যার মধ্যে বিভাজন, যার ফলস্বরূপ সর্বদা ভাসমান হওয়া উচিত। কেন আমরা তখন বিভিন্ন ফলাফল পাবেন?

যদি আমরা roundপাইথন সংস্করণ উভয়ের জন্য ডকুমেন্টেশনটি একবার দেখে নিই তবে আমরা উত্তরটি খুঁজে পাব:

  • ইন পাইথন 2 , round0 থেকে দূরে rounding দ্বারা tiebreaks।
  • ইন পাইথন 3 , roundপ্রতি rounding দ্বারা tiebreaks নিকটতম এমনকি পূর্ণসংখ্যা

অন্য কথায়, 5.0/2 = 2.5করতে চক্রের 3পাইথন 2, কিন্তু চক্রের 2নিকটতম এমনকি পূর্ণসংখ্যা অদ্ভুত শব্দ হতে পারে প্রতি পাইথন 3. রাউন্ডইং মধ্যে, কিন্তু এটি আসলে বলা হচ্ছে ব্যাঙ্কারস রাউন্ডইং , এবং ইতিবাচক ও নেতিবাচক মান একভাবে চিকিত্সা পক্ষপাত কমাতে চেষ্টা করে।

দৈর্ঘ্যের 13 স্নিপেট

class C:__x=1

অবজেক্ট-ভিত্তিক হওয়ায় পাইথনের ক্লাস রয়েছে। উপরেরটি একটি শ্রেণি Cযা একটি একক বৈশিষ্ট্য __x1 এ সেট করা আছে।

আমরা ডট স্বরলিপি ব্যবহার করে শ্রেণি বৈশিষ্ট্য অ্যাক্সেস করতে পারি। উদাহরণস্বরূপ, যদি আমাদের ক্লাস থাকে

class MyClass(): my_attr = 42

তারপরে MyClass.my_attrপ্রত্যাশিত হিসাবে মুদ্রণের ফলাফল হবে 42।

তবে, আমরা যদি একই কাজ করি এবং C.__xউপরের সংজ্ঞায়িত হিসাবে অ্যাক্সেস করার চেষ্টা করি তবে আমরা পাই:

AttributeError: type object 'C' has no attribute '__x'

কি হচ্ছে? Cস্পষ্টত একটি __xবৈশিষ্ট্য আছে!

কারণটি হ'ল বৈশিষ্ট্যগুলি __"ব্যক্তিগত" ভেরিয়েবলগুলি অনুকরণ করে শুরু হয় , যা পাইথনের নেই । পাইথন কোনও __শ্রেণীর নাম দিয়ে শুরু করে ক্লাসের নাম সংযোজন করে সেই নামটির পুনরায় ব্যবহারের বিরোধগুলি এড়ায় mang উপরের উদাহরণে, যদি আমরা সত্যিই এটি অ্যাক্সেস করার জন্য দৃ determined়সংকল্পবদ্ধ 1ছিলাম তবে আমাদের পরিবর্তে এটি করতে হবে

>>> C._C__x
1

দৈর্ঘ্যের 14 স্নিপেট

NotImplemented

পাইথনের কেবল ক্লাস নেই, এতে অপারেটর ওভারলোডিংও রয়েছে। উদাহরণস্বরূপ, আপনি একটি ক্লাস করতে পারেন

class Tiny():
    def __lt__(self, other):
        return True

__lt__অপারেটর কম যেখানে । এখন যদি আমরা একটি উদাহরণ তৈরি করি Tiny, আমরা এটি করতে পারি

>>> t = Tiny()
>>> t < 1
True
>>> t < "abc"
True

যেহেতু আমরা __lt__সর্বদা ফিরে আসার সংজ্ঞা দিয়েছি True। মনে রাখবেন যে আমরাও করতে পারি

>>> 42 > t
True

কিন্তু নিম্নলিখিত বিরতি:

>>> t > 42
Traceback (most recent call last):
  File "<pyshell#18>", line 1, in <module>
    t > 42
TypeError: unorderable types: Tiny() > int()

অপেক্ষা করুন, কিভাবে কাজ করে? আমরা এর চেয়ে বেশি-এর চেয়ে বেশি আচরণের জন্য সুনির্দিষ্টভাবে উল্লেখ করি নি Tiny, তাই শেষ ঘটনাটি ভাঙ্গলে অবাক হওয়ার কিছু নেই। কিন্তু তারপরে কোনও int(42) কীভাবে জানতে পারে যে এটি আমাদের Tinyঅবজেক্টের চেয়ে বড় ?

পাইথনের একটি অন্তর্নির্মিত ধ্রুবক রয়েছে NotImplemented, যা তুলনা বিশেষ পদ্ধতিতে ফিরে আসতে পারে। আসুন এটি ব্যবহার করে দেখুন:

class Unknown():
    def __gt__(self, other):
        # __gt__ for greater-than
        print("Called me first!")
        return NotImplemented

এখন যদি আমরা আমাদের নতুন ক্লাসের উদাহরণ তৈরি করি:

>>> u = Unknown()

আমরা এটা করতে পারি:

>>> t < u
True
>>> u > t
Called me first!
True

যেমন আমরা দেখতে পাচ্ছি, u > tপাইথন Unknownপ্রথমটির চেয়ে বৃহত্তর পদ্ধতির কল করার চেষ্টা করেছিল , দেখা গেছে যে এটি প্রয়োগ করা হয়নি এবং Tinyপরিবর্তে অন্য শ্রেণির ( ) পরিবর্তে কম পদ্ধতির চেষ্টা করেছে !

দৈর্ঘ্যের 15 স্নিপেট

x=[],;x[0]+=[1]

এটি একটি মজার কিছু। আমরা প্রথমে নির্ধারণ xকরা [],যা tuple, অর্থাত্ ভিতরে একটি ফাঁকা তালিকা ([],)। তারপরে আমরা x[0]+=[1]যা করি খালি তালিকার ভিতরে দ্বিতীয় তালিকার মাধ্যমে প্রসারিত করার চেষ্টা করি [1]

এখন, মনে রাখবেন যে তালিকা চপল এবং tuples হয় তোমার দর্শন লগ করা চপল - কি ঘটে যখন আপনি কোনো অপরিবর্তনীয় অবজেক্টের অভ্যন্তরে একটি চপল বস্তুর পরিবর্তন করতে চেষ্টা?

>>> x=[],;x[0]+=[1]
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    x=[],;x[0]+=[1]
TypeError: 'tuple' object does not support item assignment

ওহ তাই এটি একটি ত্রুটি দেয়, আমার ধারণা এটি প্রত্যাশিত হবে। তবে আমরা যদি প্রিন্ট করার চেষ্টা করি x?

>>> x
([1],)

তাই না? তালিকা বদলে গেল!

আপনি যদি এখানে কি ঘটতে আগ্রহী হন তবে এই ব্লগ পোস্টটি পরীক্ষা করে দেখুন ।

দৈর্ঘ্যের 16 স্নিপেট

@lru_cache(None)

শুধু ক্যাশে যোগ করুন! পাইথন 3 এ এটি কোনও সজ্জাকারীর সহজ উদাহরণ ।

ধরা যাক আমাদের ফিবোনাচি নিম্নলিখিত নীলাভ প্রয়োগ আছে:

def f(n):
    if n < 2: return 1
    return f(n-1) + f(n-2)

যেহেতু প্রোগ্রামিং কোর্সগুলির বেশিরভাগ ভূমিকা আপনাকে বলতে পারে, এটি ফিবোনাকির বাস্তবায়নের একটি খুব খারাপ উপায়, যা ঘাঁটিঘাঁটি চালানোর সময়কে কার্যকর করে যেহেতু আমরা কার্যকরভাবে কেবল বেস কেসটিতে 1s এর অনেকগুলি যুক্ত করছি। f(10)? একটি বিভক্ত দ্বিতীয় চালানো। f(32)? কিছুক্ষণ সময় নিন, তবে এটি সেখানে যায়। f(100)? নাঃ।

তবে আমরা যদি ফলাফলগুলি ক্যাশে করি তবে জিনিসগুলি আরও দ্রুত হওয়া উচিত। আমরা সর্বদা ক্যাশের জন্য অভিধান ব্যবহার করতে পারি, তবে এর পরিবর্তে অন্য কিছু চেষ্টা করি:

from functools import lru_cache

@lru_cache(None)
def f(n):
    if n < 2: return 1
    return f(n-1) + f(n-2)

আমরা দেখতে পাচ্ছি, আমি যা কিছু করেছি তা হ'ল মডিউল lru_cacheথেকে আমদানি করা functoolsএবং @lru_cache(None)আমার ফাংশনের আগে যুক্ত করা । @স্মৃতিচারণের জন্য এই ক্ষেত্রে কোনও ডেকরেটারকে বোঝায় যা কোনও ফাংশনকে ঘিরে রাখে। lru_cacheপ্রথম আর্গুমেন্টটি হ'ল maxsizeক্যাশের সর্বাধিক আকার here এখানে আমরা Noneকোনও সর্বাধিক আকার নির্দেশ করতে এটি সেট করেছি ।

এখন যদি আমরা এটি ব্যবহার করার চেষ্টা করি:

>>> f(100)
573147844013817084101

আর এক সেকেন্ডও লাগেনি!

দ্রষ্টব্য: f(1000)পুনরাবৃত্তির গভীরতার ত্রুটির দিকে পরিচালিত করে তবে এটি অন্য সময়ের জন্য গল্প


পাইথন isঅপারেটরের জন্য কতগুলি ছোট ছোট পূর্ণসংখ্যার "ধরা" দেয় ?
mbomb007

@ থেকে mbomb007 এই প্রশ্নের , এটা -5 256. করার আপনি চেষ্টা করতে পারেন বলে মনে হচ্ছে -5-1 is -6এবং 255+2 is 257পরীক্ষা করা হবে।
Sp3000

37

লেশ

ফ্যাক্টয়েড: আমি জোটটি 2 টি আপভোটের সাহায্যে সংজ্ঞায়িত করতে পারি এবং প্রমাণ করতে পারি যে এটি 8 টি (4, 6 বা 7 এর দৈর্ঘ্য ব্যবহার করে না) দিয়ে সম্পূর্ণ হয় T

দৈর্ঘ্য 1

1

এটি জোটের দুটি ফাংশনের উদাহরণ। প্রথমটি হ'ল খালি স্ট্রিং, যা সনাক্তকরণ ফাংশনটির মূল্যায়ন করে। দ্বিতীয়টি 1, যা জোটের গ্রুপিং অপারেটর। ( ল্যাম্বদা ক্যালকুলাস স্বরলিপি) 1মূল্যায়ন করে , যেখানে প্রোগ্রামটির আগে (এখানে, খালি স্ট্রিং)) সুতরাং, এই প্রোগ্রামটি হল ফাংশন যা সহজতর করে ।λxy.[F](xy)[F]1λxy.(λz.z)(xy)λxy.xy

দৈর্ঘ্য 2

10

এখন আমরা জোটে অন্যান্য প্রতীকটি প্রবর্তন করছি 0। আবার যদি [F]এখনও পর্যন্ত প্রোগ্রামটির মান উপস্থাপন করে তবে সংশ্লেষ যুক্তি থেকে কোথায় এবং কোথায় 0তা মূল্যায়ন করে । আমি এখন পুরো ভাষাটি সংজ্ঞায়িত করেছি।[F]SKSK

দৈর্ঘ্য 5

11100

আমি এখন প্রমাণ করব যে জোট সংযুক্ত যুক্তি থেকে ম্যাপিং সংজ্ঞা দিয়ে জোট টুরিং সম্পূর্ণ । এই জট প্রোগ্রামটি কে সংযুক্তকারী

দৈর্ঘ্য 8

11111000

এটি এস কম্বিনেটর।

দৈর্ঘ্য 3

1AB

এখানে, Aএবং Bজটের অংশ নয়, বরং একটি স্বেচ্ছাসেবী অভিব্যক্তির জন্য স্থানধারক। অভিব্যক্তি ABসমন্নয়ের যুক্তিবিজ্ঞান করা মানচিত্র 1ABJot মধ্যে, সঙ্গে Aএবং Brecursively এই তিনটি বিধি দ্বারা রুপান্তরিত। Qed

দৈর্ঘ্য এন

1
10
11
100
101
110
[...]

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


2
দুটি upvotes দেওয়া হয়েছে। এখন ভাষা সংজ্ঞায়িত করুন।
জন ডিভোরাক

@ জানডভোরাক এতে কাজ করছেন ... আমি এই বিষয়টি নিয়ে গবেষণা করার পরে এত দিন হয়ে গেছে যে আমি এটি সব ভুলে গিয়েছি :)
ফিল ফ্রস্ট

1
আমি কেন দেখতে পাচ্ছি না কেন এটি আরও বেশি চালিয়ে যাওয়া উচিত। আপনি কেবল বর্ধমান দৈর্ঘ্যের এলোমেলো বাইনারি সংখ্যা উত্পন্ন করতে যাচ্ছেন: |
অপ্টিমাইজার

1
আপনি upvote 4 নম্বর জন্য তাই বলেছিলেন। কিন্তু এখানে আমরা একটি "আপনি সবেমাত্র এলোমেলো সংখ্যা" খুঁজছেন
অপ্টিমাইজার

1
আপনি কীভাবে থামার সমস্যাটি সমাধান করতে পারেন? আমি অনুমান করছি যে এটি অসীম (অসীমের সংখ্যা) প্রোগ্রামটি ব্যবহার করে কিছু করার আছে?
ফিলিপ হাগলুন্ড

37

সজোরে আঘাত

Factoid:

অত্যন্ত গুরুতর শেলশক বাগটি 1989 সাল থেকে ব্যাশে উপস্থিত ছিল এবং এক শতাব্দীর এক চতুর্থাংশ অবধি অনাবৃত ছিল। বাশের লেখার আনন্দের বেশিরভাগ অংশটি এর বহু কৌতূহল এবং অসংলগ্নতার সাথে আঁকড়ে উঠছে।

দৈর্ঘ্য 1 স্নিপেট:

[

testবিল্টিনের একটি নাম , বিন্যাসের কোডের অনুমতি দেয় if [ a == b ]; then- বাস্তবে [একটি স্বতন্ত্র আদেশ, সিন্টেক্সটিকাল উপাদান নয়, এবং ]খাঁটিভাবে সজ্জাসংক্রান্ত (যদিও [এটির প্রয়োজন হয়, এটি স্বেচ্ছাসেবী এবং আপনি এটি ব্যবহার করে তা সরিয়ে দিতে পারেন alias [=test))।

দৈর্ঘ্য 2 স্নিপেট:

||

orবেশিরভাগ ভাষায় লজিকাল পছন্দ করে তবে প্রক্রিয়াগুলির জন্য। ||কমান্ড শূন্য-পূর্বে ফিরে আসার আগেই কেবলমাত্র কমান্ডটি কার্যকর করবে ।

দৈর্ঘ্য 3 স্নিপেট:

x=y

অ্যাসাইনমেন্ট। সুন্দর এবং অনুমানযোগ্য ... তবে অন্যান্য বেশিরভাগ ভাষার মতো, অতিরিক্ত জায়গার অনুমতি নেই। কোন ধরণের মজাদার কারণ আপনি বাশের জিনিসগুলির মধ্যে কেবল অন্যদিকে নয়, অন্য কোথাও অতিরিক্ত জায়গা আটকে রাখতে পারেন =

দৈর্ঘ্য 4 স্নিপেট:

$IFS

অভ্যন্তরীণ ক্ষেত্র বিভাজক - এই পরিবর্তনশীল প্রভাবিত করে যে কীভাবে অন্তর্নির্মিত ক্রিয়াকলাপগুলির জন্য বাশ ডেটা বিভক্ত করে, যেমন লুপগুলির জন্য পুনরাবৃত্তি করা এবং স্ট্রিংগুলি থেকে অ্যারে পপুলেটিং করা। সঠিকভাবে ব্যবহৃত এটি খুব শক্তিশালী হতে পারে; তবে প্রায়শই এটি সূক্ষ্ম এবং অপ্রত্যাশিত বাগের কারণ।

দৈর্ঘ্য 5 স্নিপেট:

${x^}

X এ স্ট্রিং প্রতিস্থাপন করুন, তবে প্রথম চরিত্রটি মূলধন দিয়ে! এই জাতীয় প্রায়শই ব্যবহৃত বৈশিষ্ট্য এটির নিজস্ব ভাষা সংশ্লেষের একটি ডেডিকেটেড টুকরা রয়েছে।

দৈর্ঘ্যের 6 টি স্নিপেট:

x=($y)

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

দৈর্ঘ্য 7 স্নিপেট:

${x[y]}

অ্যারেগুলির! তবে অপেক্ষা করুন, এটি কী ... y একটি স্ট্রিং, সংখ্যার সূচক নয়? হ্যাঁ, বাশ সাহসী অ্যারেগুলিকে সমর্থন করে! অনেকেই এটি জানেন না। আপনার declare -A xপ্রথমে দরকার ।

দৈর্ঘ্য 8 স্নিপেট:

${x##*,}

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

দৈর্ঘ্য 9 স্নিপেট:

[ a = b ]

বেশিরভাগ অন্যান্য ভাষায়, একটি তুলনা অপারেশনের জন্য একটি একক সমান একটি অ্যাসাইনমেন্ট আকারে অনিচ্ছাকৃত আচরণ তৈরি করে। যদিও বাশে নেই। আপনি যা কিছু করেন না কেন কেবল কোনও স্থান বাদ দেবেন না!

দৈর্ঘ্য 10 স্নিপেট:

if [ a=b ]

বাধ্যতামূলক জায়গাগুলি ভুলে গেলে এটিই ঘটে। একটি ত্রুটি নিক্ষেপ করবে না। সর্বদা সত্য ফিরে আসবে - এমনকি যদি এমন aএবং bচলকগুলি যেগুলি সেট না করা হয়, বা যাই হোক না কেন সেগুলি সেট করা হয়, তাতে কিছু আসে যায় না - এটি সর্বদা সত্যই ফিরে আসবে। if [ "$password"="$correctpass" ]এই "বৈশিষ্ট্য" এর মজাদার সম্ভাবনা দেখতে কোড সম্পর্কে ভাবেন ।

দৈর্ঘ্য 11 স্নিপেট:

x=${y//a/b}

রেজেক্স-স্টাইলের স্ট্রাস্টিং প্রতিস্থাপন! Y এর মানতে x সেট করুন তবে খ এর সাথে প্রতিস্থাপিত প্রতিটি ঘটনার সাথেই সেট করুন।

দৈর্ঘ্যের 12 স্নিপেট:

[[:upper:]]*

প্যাটার্ন ম্যাচিং - আপনি অবশ্য শেল * ওয়াইল্ডকার্ড ব্যবহার সীমাবদ্ধ নয়, আপনি যেমন কোন POSIX মান ম্যাচ ব্যবহার করতে পারেন alnum, alpha, digitইত্যাদি

দৈর্ঘ্য 13 স্নিপেট:

function x(){

সি সিনট্যাক্সের একটি বিট রহস্যজনকভাবে তৈরি হয়েছে! কোঁকড়া ধনুর্বন্ধনী জন্য সম্পূর্ণ ভিন্ন ব্যবহারগুলির মধ্যে একটি, এবং বাশকে অন্যান্য ভাষার মতো দেখতে আরও optionচ্ছিক আলংকারিক উপাদানের আরেকটি উদাহরণ - হয় ()বা functionএখানে বাদ দেওয়া যেতে পারে (তবে উভয়ই নয়)। অসঙ্গত ব্যবধান সহ এছাড়াও আরো মজা - পরে একটি স্পেস {বাধ্যতামূলক, কিন্তু না বন্ধ করার আগে }, হিসাবেfunction x { y;}

দৈর্ঘ্য 14 স্নিপেট:

echo {Z..A..3}

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

দৈর্ঘ্যের 15 স্নিপেট:

echo {a,b,c,d}x

সিক্যুয়েন্স জেনারেশনে কোঁকড়ানো ধনুর্বন্ধনীগুলির জন্য আর একটি অনুরূপ তবে অভিন্ন নয়; মুদ্রণ করে ax bx cx dx, এবং একক কমান্ডের ক্রম বা তালিকা থেকে স্ট্রিংয়ের তালিকা তৈরির জন্য দরকারী। আবার যাইহোক, দরকারীতার মধ্যে সীমাবদ্ধ কারণ এটি বন্ধনীগুলির মধ্যে ভেরিয়েবলগুলি ব্যবহার করা যায় না।


আসলে, ] নিখুঁতভাবে আলংকারিক নয়। [এটির শেষ যুক্তিটি না হলে কাজ করতে অস্বীকার করবে ]
FUZxxl ২

হ্যাঁ, তবে এটি প্রসাধনী ব্যতীত অন্য কোনও উদ্দেশ্যে কাজ করে না; এবং যদি আপনি [এর অন্য ফর্মের সাথে প্রতিস্থাপন করেন testতবে] আমি কেবল বিন্দুর সাহায্যে প্রকৃত ব্যাশ সিনট্যাক্স শুধু চাক্ষুষ চিনি না তৈরি করছি - কলে অন্য কিছু পরিবর্তন না করে বাদ দেওয়া যেতে পারে।
দাঙ্গা

আপনি ঠিক যে এটা ব্যাশ সিনট্যাক্স নয়, কিন্তু শেষে ]হয় [সিনট্যাক্স এবং আপনি ঠিক কিভাবে আপনি একটি সেমিকোলন দিয়ে সি এক বিবৃতিতে বিনষ্ট আছে এটি প্রদান করতে হবে।
FUZxxl ২

এটি সত্য যে এটি বাধ্যতামূলক, তবে সি সেমিকোলনের মতো নয়। এটির জন্য প্রয়োজনীয়তা সম্পূর্ণরূপে স্বেচ্ছাচারী, যেমনটি আপনি যদি দেখে থাকেন তবে কেবল alias [=testলিখুন এবং তারপর if [ 1 = 1; thenইত্যাদি লিখুন তবে আমি আপনার বক্তব্যটিকে বিবেচনায় নেওয়ার জন্য আমার কথাটি স্পষ্ট করব :)
দাঙ্গা

1
function x(){বাক্য গঠন সম্পর্কে : আপনি যেমন বলেছিলেন তেমন প্যারেন্স ফেলে দিতে পারেন তবে আপনি কেবল functionঅংশটি বাদ দিতে পারেন । আসলে, পসিক্স শেল কীভাবে ফাংশনগুলি সংজ্ঞায়িত করে, তাই এটি আরও পোর্টেবল। আপনি 13 টি অক্ষরে একটি সম্পূর্ণ ফাংশন সংজ্ঞায়িত করতে পারেন। উদাহরণ স্বরূপ:x(){ startx;}
কোজিরো

37

APL

Factoid

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

আপনি বেশিরভাগ উদাহরণ http://www.tryapl.org এ ব্যবহার করে দেখতে পারেন

দৈর্ঘ্য 1

ল্যাম্পশেড নামে পরিচিত এই চরিত্রটি এর উপস্থিতি এবং উপস্থিতি থেকে যে আলোকসজ্জা পেতে পারে তার জন্য একটি মন্তব্য উপস্থাপন করে। .তিহাসিকভাবে, এটি একটি ( জট ) এবং একটি (জুতা) অত্যধিক স্ট্রাইক করে তৈরি করা হয়েছিল ।

দৈর্ঘ্য 2

⍳3

মোনাডিক (একটি যুক্তি) ফাংশন (আইওটা) প্রথম কয়েকটি প্রাকৃতিক সংখ্যার একটি ভেক্টর তৈরি করে। উদাহরণস্বরূপ, উপরোক্ত উল্লিখিত ⍳3ফলন হবে 1 2 3, প্রথম তিনটি প্রাকৃতিক সংখ্যার ভেক্টর। APL কিছু বাস্তবায়নের উপর, এটা উত্পাদ হবে 0 1 2পরিবর্তে, এই মান উপর নির্ভর করে ⎕IO, আমি Ota rigin।

দৈর্ঘ্য 3

5\3

মোনাডিকের বিরোধিতা হিসাবে ডায়াডিক \(প্রসারিত) ফাংশন তত যুক্তি ডানদিকে অনুলিপি করে বামদিকে ততবার যুক্তি হিসাবে; এইভাবে, 5\3ফলন 3 3 3 3 3। আপনি ভেক্টর আর্গুমেন্ট (যেমন 1 2 3\4 5 6) এর সাথে খেলতে চান এটি দেখতে এখন কী করে।

দৈর্ঘ্য 4

A←⍳3

এটি নির্ধারিত A মান⍳3(বাম তীর) হ'ল অ্যাসাইনমেন্ট অপারেটর। একটি বিবৃতিতে একটি অ্যাসাইনমেন্টটি বামতম জিনিস হতে হবে না; অ্যাসাইনমেন্টগুলি ফাংশন কলগুলির মতো পার্স করা হয় এবং আরও ব্যবহারের জন্য নির্ধারিত মান দেয়।

দৈর্ঘ্য 5

∘.×⍨A

একটি তিন দ্বারা তিনটি গুণ টেবিল, যা,

1 2 3
2 4 6
3 6 9

এটি কিছুটা জটিল, তাই আমাকে ব্যাখ্যা করুন। ⍺∘.f⍵(পড়া: আলফা Jot ডট ওমেগা চ) হয় বাইরের পণ্য এর এবং উপর f। বাইরের পণ্য প্রয়োগের ফলাফলের একটি টেবিল fথেকে উপাদানগুলি প্রতিটি সম্ভাব্য যুগল থেকে এবং । এই উদাহরণে, fহ'ল ×(গুণ), গুণফল সারণী দেয়। অপারেটর (টিল্ড ডায়ারেসিস) commutes এর আর্গুমেন্টগুলি, অর্থাৎ ⍺f⍨⍵সমান ⍺f⍵এবং f⍨⍵ছাড়া একটি বাম প্রতীক সমান ⍵f⍵। যাতায়াত অপারেটর ছাড়া এই স্নিপেটটি হবে a∘.×a। বাইরের পণ্য অপারেটর খুব বহুমুখী; খুঁজে বার করো যদি তোমরা প্রতিস্থাপন সেখানে কি ঘটছে =জন্য ×!

দৈর্ঘ্য 6

{×/⍳⍵}

একটি ফ্যাক্টরিয়াল ফাংশন। একটি জোড়া কোঁকড়া ধনুর্বন্ধনী একটি ডিএফএন (ডায়নামিক ফাংশন), যা একটি বেনামে ফাংশন (সিএফ। ল্যাম্বদা এক্সপ্রেশন) সংযুক্ত করে। একটি ডিএফএন-তে আর্গুমেন্টগুলি ভেরিয়েবলের সাথে আবদ্ধ থাকে এবং বা যদি ডিএফএনকে একটি মোনাডিক (একক যুক্তি, ডায়াডিকের বিপরীতে, দুটি যুক্তি) ফাংশন বলা হয়। আমরা আবেদন ডান যুক্তি থেকে পূর্ণসংখ্যার ফলনশীল 1করার /(স্ল্যাশ) অপারেটর হ্রাস, যে হয় f/⍵টিপে fআইটেম মধ্যে । উদাহরণস্বরূপ, +/⍳5ঠিক 1+2+3+4+5। এই ক্ষেত্রে, আমরা হ্রাস করি ×, এর আইটেমগুলির ফলন দিয়েছি ⍳⍵, যা কেবল বিবরণী

দৈর্ঘ্য 7

2×3*4+5

ফলন 39366⍺*⍵(আলফা তারা ওমেগা) এর শক্তিতে উত্থাপিত হয় । এপিএলটির একটি খুব সাধারণ নজির নিয়ম রয়েছে: সমস্ত কিছু ডান থেকে বামে মূল্যায়ন করা হয়, সমস্ত কার্য ডান-সহযোগী। অপারেটরগুলি ফাংশনগুলির চেয়ে শক্তিশালী আবদ্ধ হয় এবং বাম থেকে ডানদিকে মূল্যায়ন হয়। সুতরাং, সুস্পষ্ট বন্ধনী সহ উপরের অভিব্যক্তিটি 2×(3*(4+5))স্বাভাবিকের বিপরীতে লেখা হবে (2×(3*4))+5

দৈর্ঘ্য 8

¯1+3 3⍴A

এই স্নিপেট ফলন

0 1 2
3 4 5
6 7 8

এবং দুটি গুরুত্বপূর্ণ ধারণা প্রমান: প্রথম ধারণা (RHO) ফাংশন, যা reshapes আকৃতি তার বাম যুক্তি উল্লেখিত তার ডান যুক্তি। অ্যারের আকারটি অ্যারের প্রতিটি অক্ষের দৈর্ঘ্যের ভেক্টর। একটি স্কেলারের আকারটি খালি ভেক্টর। সুতরাং, তিনটি তিনটি ম্যাট্রিক্সে 3 3⍴Aপুনরায় আকার দিন A। দ্বিতীয় ধারণাটি এখানে কীভাবে সংযোজন ব্যবহৃত হয়: আমরা ¯1অ্যারেতে (ওভারবার এক) যুক্ত করব, যার অর্থ নেতিবাচক একটি (negativeণাত্মক ¯সংখ্যা নির্দিষ্ট করার জন্য একটি উপসর্গ, যখন -অপারেটর) একটি অ্যারেতে। দুটি অপারেন্ডের বিভিন্ন আকার রয়েছে, তাই অপেক্ষাকৃত কম আকৃতির অপারেন্ডটি অন্য অপারেন্ডে বিতরণ করা হয়, উত্পন্ন ম্যাট্রিক্সের প্রতিটি আইটেম থেকে একটিকে বিয়োগ করে।

দৈর্ঘ্য 9

+.×⍨3 3⍴A

A, নিজের সাথে গুণিত করে 3 বাই 3 ম্যাট্রিক্সে পুনরায় আকার দেওয়া হয়েছে। .(DOT) অপারেটর দুটি ফাংশন লাগে এবং একটি নির্মান ভেতরের পণ্য , যেখানে প্রথম ফাংশন প্রতিনিধিত্ব করে উপরন্তু এবং দ্বিতীয় ফাংশন গুণ। একটি সরল, পুরাতন, ম্যাট্রিক্সের গুণটি হ'ল +.×, সাধারণ রূপটি হ'ল ≠.∧(যেখানে সমান নয় এবং (ক্যারেটটি যৌক্তিক এবং)) বুলিয়ান ম্যাট্রিক্সের জন্য; অনেক কৌতূহলোদ্দীপক জায়গায় নির্দিষ্ট অপারেটরদের সঙ্গে একটি অভ্যন্তরীণ পণ্য হিসাবে অনুকরণে করা যেতে পারে +এবং ×

দৈর্ঘ্য 10

(.5×⊢+÷)⍣≡

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

তাহলে এটা কিভাবে কাজ করে? (.5×⊢+÷)প্রথমে , বাম অংশ দিয়ে শুরু করা যাক । এই অভিব্যক্তিটি জেতে উদ্ভূত সূক্ষ্ম স্বরলিপি ব্যবহার করে যা পরে ডায়ালগ এপিএলে ফিরে পোর্ট করা হয়েছিল। সারণী স্বরলিপি প্রাথমিকভাবে কিছুটা কঠিন, সুতরাং দয়া করে এই বিভাগটি মনোযোগ সহকারে পড়ুন। একটি বিচ্ছিন্ন ক্রম, যেমন +/÷≢, "সাধারণ" পার্সিং বিধিগুলি বক্তব্যের একক অংশে সমাধান করে না তাকে ট্রেন বলে called দুটি বা তিনটি ফাংশনের একটি ট্রেন একটি ফাংশন তৈরি করে এবং (পুনরাবৃত্তি সমাধানের মাধ্যমে), কোনও দৈর্ঘ্যের একটি ফাংশন ট্রেনও একটি ফাংশন তৈরি করে। তিন ফাংশন ট্রেন fghমত আচরণ {(⍺f⍵)g⍺h⍵}, যে, fএবং hফলে ফাংশন এবং এগুলোর ফলাফলের অফ আর্গুমেন্ট প্রয়োগ করা হয় প্রয়োগ করা হয় g। একটি অ্যারের ট্রেন এবং দুটি ফাংশন এর মতোAfgআচরণ করবে পছন্দ{Af⍺g⍵} , এটি হ'লgফলাফলযুক্ত ফাংশনের যুক্তিগুলিতে প্রয়োগ করা হয় Aএবং ফলাফলটি প্রয়োগ করা হয় f। দুটি ফাংশনের একটি ট্রেনের একটি শব্দার্থক শব্দও রয়েছে, যা ডকুমেন্টেশনে ব্যাখ্যা করা হয়েছে তবে এই উদাহরণে ব্যবহার করা হয়নি।

এই নির্দিষ্ট ট্রেনে, একটি নতুন ফাংশন, (ডান ট্যাক) ব্যবহৃত হয়। এটি {⍵}তার সঠিক যুক্তি উপস্থাপনের মতো আচরণ করে । সুতরাং, পুরো ভাবটি সমান {.5×⍵+⍺÷⍵}, যা কেবলমাত্র ব্যাবিলনীয় সূত্রের পুনরাবৃত্তি পদক্ষেপ। স্বচ্ছ স্বরলিপি গল্ফারকে কীভাবে উপকৃত করে তা সহজেই দেখা যায়; এটি আপনাকে প্রযোজ্য যেখানে বেশ কয়েকটি মূল্যবান চরিত্রের শেভ করতে দেয়।

ধাঁধার শেষ অংশটি (স্টার ডায়ারেসিস), পাওয়ার অপারেটর। অধিকার যুক্তি একটি অ্যারের হয়, তাহলে f⍣A⍵প্রযোজ্য fকরার একটি মোট Aবার। উদাহরণস্বরূপ, f⍣3⍵সমান fff⍵। গণনাটি নেতিবাচক হতে পারে, সেক্ষেত্রে এপিএল একটি বিপরীত কার্য নির্ধারণের চেষ্টা করে fএবং এটি প্রয়োগ করে। অধিকার যুক্তি যদি একটি ফাংশন, খুব, f⍣g⍵প্রযোজ্য fকরার পর্যন্ত (fY)gYযেখানে Yবারবার আবেদন ফল fথেকে । উল্লেখ্য, যদি gহয় =(সমান) অথবা (একই), f⍣≡একটি গণনা ফিক্স বিন্দু এরf। ব্যাবিলনীয় পদ্ধতির জন্য আমাদের ঠিক এটি দরকার! ফলাফল রূপান্তর না হওয়া পর্যন্ত আমরা পুনরাবৃত্তি করতে চাই। সবশেষে, যদি কোনও জোড়া জিনিস প্রয়োগ করা হয় তবে একটি ডায়াডিক ফাংশন হিসাবে ডাকা হয়, বাম যুক্তিটি বাম দিকে আবদ্ধ হয় f, যেমনটি যেখানে আচরণ করে ⍺f⍣g⍵তার সমান ।(⍺∘f)⍣g⍵A∘f{Af⍵}


আপনি আরও ভোট পেয়েছেন! আমরা কি আরও কিছু পেতে পারি?
লুসার droog

@ লেজারড্রোগ অবশ্যই, আমাকে আরও কিছু ভাবতে দিন।
FUZxxl

আমি কি এটি সম্পাদনা এবং প্রসারিত করতে পারি?
অ্যাডম

@ অ্যাডম হ্যাঁ, দয়া করে।
FUZxxl

∘.×⍨a আমাকে একটি মান ত্রুটি দেয় । আমি কি এটি সঠিকভাবে ব্যবহার করছি?
সাইয়েস

37

মতলব

স্নিপেট 26 - ম্যাট্রিকগুলির উপর পুনরাবৃত্তি

এটি আমি সম্প্রতি আবিষ্কার করেছি এমন একটি জিনিস। সাধারণত আপনি প্রদত্ত ভেক্টরটি লুপের জন্য পুনরাবৃত্তি করেন। তবে ভেক্টরগুলির পরিবর্তে, আপনি ম্যাট্রিকগুলিও ব্যবহার করতে পারেন ( rand(10)0 এবং 1 এর মধ্যে সমানভাবে বিতরণ সংখ্যার সাথে 10x10 ম্যাট্রিক্স উত্পাদন করে))

for k=rand(10);disp(k);end

এরপরে এটি পুনরাবৃত্তির জন্য এলোমেলো ম্যাট্রিক্সের একটি কলাম ভেক্টর প্রদর্শন করে।

স্নিপেট 25 - সহজ প্লট করা

আমরা জানি মাতলাবে প্লট করা সহজ, তবে একটি দুর্দান্ত ইজি ফাংশন রয়েছে ezplot( E-Zপেয়ে গেলেন? অবশেষে আমি এটি না পাওয়া পর্যন্ত বেশ খানিকটা সময় নিয়েছিল, যেমনটা আমি Zসবসময় sedবদলে যেমন বানান c, যাই হোক না কেন ...) সবাই উপবৃত্তাকার বাঁক পছন্দ করে:

ezplot('y^2-x^3+9*x-10.3')

উপবৃত্তাকার বক্ররেখা

স্নিপেট 24 - সংহতকরণ

একীকরণের জন্য পুরানো ফ্যাশন শব্দটি (তবে এখনও সংখ্যার গণনায় ব্যবহৃত হয়) এটি 'চতুর্ভুজ', আপনি কি অনুমান করতে পারেন যে নিম্নলিখিতটির ফলাফলটি কী?

quad(@(x)4./(1+x.^2),0,1)

স্নিপেট 23 - চিত্র

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

imrotate(rand(99),9,'c')

এখানে

স্নিপেট 22 - সঙ্গীত

load handel;sound(y,Fs)

এটি এর মতো শোনাবে (ইউটিউব লিঙ্ক)

স্নিপেট 21 - পার্থক্য করুন এবং সংহত করুন

polyint(polyder(p),c)

আপনি সহজেই এই দুটি ফাংশন ব্যবহার করে বহুভিত্তিকে আলাদা করতে ও সংহত করতে পারেন। সংহত করার সময়, আপনি একটি দ্বিতীয় তর্কটি পাস করতে পারেন যা ধ্রুবক হবে।

স্নিপেট 20 - বহুবর্ষে ফিরে

p=poly(r);cp=poly(A)

শিকড়ের সাথে বহুত্ববিন্দু চান r? সহজ: p=poly(r)। একটি ম্যাট্রিক্সের বৈশিষ্ট্যযুক্ত বহুপদী চান A? সহজ: cp=poly(A)। তাই roots(p)ঠিক r(অথবা একটি বিন্যাস r)।

স্নিপেট 19 - অন্য যাদু কৌশল

fminsearch(fun,x0);

এমন লোকেরা আছেন যারা এই ফাংশনটি একেবারে পছন্দ করেন। এটি মূলত কোনও শর্ত ছাড়াই funপ্রাথমিক মান x0(কোনও ভেক্টর হতে পারে) দিয়ে সর্বনিম্ন সন্ধান করে fun। এটি এমন ছোট ছোট মডেলগুলির জন্য উপযুক্ত যেখানে আপনি ত্রুটি / পেনাল্টি / অবজেক্টিভ ফাংশনকে আলাদা করতে (বা আপনি খুব অলস) করতে পারবেন না। এটি নেল্ডার-মিড সিমপ্লেক্স অ্যালগরিদম ব্যবহার করে যা ফাংশনগুলির জন্য বেশ দ্রুত যেখানে আপনি কোনও অনুমান করতে পারবেন না।

স্নিপেট 18 - বহুবর্ষের পরিচয়

p=polyfit(x,y,deg)

বহুবর্ষগুলি মোকাবেলার জন্য মতলব একটি দুর্দান্ত সমাধান রয়েছে। আপনার সাথে সাথে polyfitসর্বনিম্ন স্কোয়ারগুলি বহুগুণ ডিগ্রি পাবেন degযা পয়েন্টগুলি সংলগ্ন করে x,y। আপনি একটি ভেক্টর পেয়েছেন pযা বহুবর্ষের গুণাগুণগুলি সঞ্চয় করে, কারণ বহুবর্ষের প্রতিনিধিত্ব করার জন্য আপনার কেবল এটিই প্রয়োজন। আপনি যদি স্নিপেট 15 এ ফিরে যান, আপনি লিখে একই জিনিস করতে পারেন c = polyfit(x,y,2)। সুতরাং যেমন [1,-2,3]বহুপদী প্রতিনিধিত্ব করে x^2 - 2*x+3। অবশ্যই অন্যান্য প্রাথমিক, বা স্বেচ্ছাসেবী ফাংশন ফিটিং জন্য ফাংশন আছে।

স্নিপেট 17 - কোণ এবং বিচ্ছিন্নতা

unwrap(angle(c))

আপনি জটিল সংখ্যার 'ধারাবাহিক' ভেক্টরের যুক্তি পেতে চাইলে আপনি প্রায়শই মানগুলি ফিরে পান যা বিচ্ছিন্ন বলে মনে হয় back উদাহরণস্বরূপ angle([-1-0.2i,-1-0.1i,-1,-1+0.1i,-1+0.2i])আপনি পাবেন [-2.94,-3.04,3.14,3.04,2.94]যেহেতু angleকেবল -piএবং এর মধ্যে কেবল কোণগুলি ফেরত দেয় pi। এই কাজটি unwrapযত্ন নেবে! আপনি যদি এর মতো কোনও বিচ্ছিন্নতা পান তবে 2*piএগুলি সরাতে এটি কেবল একাধিক সংযোজন করবে : '[-2.94, -3.04, -3.14, -3.24, -3.34]' এটি 2 ডি-ম্যাট্রিকের জন্যও কাজ করে! যদি আপনি কেবল একটি নেতিবাচক বাস্তব অংশ দিয়ে জটিল সংখ্যার যুক্তিটি প্লট করেন তবে আপনি প্রথম গ্রাফিক্স পাবেন তবে প্রথম চিত্রটি আনারপেকে আপনি দ্বিতীয়টি আনবেন:

মোড়ক ছাড়া মোড়ক দিয়ে

[x,y] = meshgrid(-1:0.01:0,-0.5:0.01:0.5);
z = x+i*y;
imagesc(angle(z))
imagesc(unwrap(angle(z)))

স্নিপেট 16 - স্কেলার পণ্য

[1;2;3]'*[4;5;6]

অবশ্যই পদ্ধতিগুলি (যেমন dot) তে অন্তর্নির্মিত রয়েছে তবে ম্যাট্রিক্স-ট্রান্সফর্মেশন অপারেটরের সাথে এটি এতটা 'সহজ। আপনার যদি সারি বা কলামের ভেক্টর রয়েছে কিনা তা আপনি না জানেন তবে আপনি কেবল a(:)'*b(:)কোথায় ব্যবহার করতে পারেনa(:) সর্বদা একটি কলাম ভেক্টর ফেরত ।

স্নিপেট 15 - লিনিয়ার সর্বনিম্ন স্কোয়ারগুলি, যাদুর কাঠের সাথে কুশ্রী পদ্ধতি

[x.^2,x,x.^0]\y

xএক্স-অক্ষের মানগুলির সাথে (কলাম) ভেক্টর হ'ল yশোরগোলের ওয়াই-মান। টাইপ করুন c=[x.^2,x,x.^0]\yএবং আপনি ২ য় ডিগ্রি বহুবর্ষের সহগ পাবেন। অবশ্যই আপনি মাতলাবের বিলিয়নে অন্তর্নির্মিত ফিটগুলির মধ্যে একটি ব্যবহার করতে পারেন (কতটা বিরক্তিকর) কেন যাদু জরি ব্যবহার করবেন না? =)

x = (-1:0.1:2)';
y = 3*x.^2-2*x+1+randn(size(x)); %add some gaussian (normal) noise
A = [x.^2,x,x.^0];
c = A\y              %output: c = ]3.0049; -2.3484; 1.1852]
plot(x,y,'x',x,A*c,'-')

linreg

স্নিপেট 14 - গ্রাফ

gplot(graph,x)

এভাবেই গ্রাফ প্লট করা যায়। graphএকটি বর্গ সংলগ্ন ম্যাট্রিক্স xথাকা উচিত এবং একটি এনএক্স 2 ম্যাট্রিক্স হওয়া উচিত যাতে প্রতিটি নোডের স্থানাঙ্ক থাকে। একটি এলোমেলো গ্রাফ তৈরি করা যাক: graph = triu( rand(8)>.7)(ম্যাট্রিক্স তৈরি করুন যাতে 0 এবং 1 এস রয়েছে, আকর্ষণীয় গ্রাফের জন্য কেবলমাত্র উপরের ত্রিভুজটি পান)। x = rand(8,2)তারপরে কিছু অভিনব শৈলীর সাথে প্লট করুনgplot(graph,x,'k-.d')

চিত্রলেখ (আমি এটি আধুনিক শিল্প হিসাবে ঘোষণা করি।)

স্নিপেট 13 - জালগ্রিড

meshgrid(a,b)

এটি সবচেয়ে ভয়ঙ্কর ফাংশনগুলির মধ্যে একটি, সহজ তবে দরকারী। আপনি যদি দুটি ভেরিয়েবলের উপর নির্ভর করে একটি সত্যিকারের মূল্যবান ফাংশন প্লট করতে চান তবে আপনি কেবলমাত্র এক্স-অক্ষের জন্য মানগুলির একটি ভেক্টর এবং একটি y- অক্ষের (একটি এবং খ) জন্য সংজ্ঞা দিতে পারেন। তারপরে মেশগ্রিডের সাহায্যে আপনি আকারের লেনের দুটি ম্যাট্রিক তৈরি করতে পারেন (ক) এক্স লেন (বি) যেখানে একটিতে aকলাম হিসাবে কেবল ভেক্টর রয়েছে এবং অন্যটিতে কলামটিতে bসারি হিসাবে কেবল ভেক্টর রয়েছে । ব্যবহারের উদাহরণ: a = -3:0.2:3;[x,y]=meshgrid(a)(যদি উভয় ভেক্টর একই হয় তবে এটি কেবল একটি পাস করার পক্ষে যথেষ্ট)) তারপরে আপনি কেবল টাইপ করতে পারেন z=x.^2+-y.^2এবং উদাহরণস্বরূপmesh(x,y,z)। এটি একটি স্বেচ্ছাসেবী সংখ্যার জন্য কাজ করে! সুতরাং এটি কেবল ষড়যন্ত্রের জন্যই দুর্দান্ত নয়, বিভিন্ন ভেক্টর ইত্যাদির সমস্ত সম্ভাব্য সংমিশ্রণ ইত্যাদির জন্যও রয়েছে ... (সুতরাং, আপনি যদি একটি নতুন কোড গল্ফ ভাষা তৈরি করতে চান তবে এটি অবশ্যই সেখানে থাকা উচিত, আপনি নিশ্চিত হন যে আপনি একটি খাটো ব্যবহার করছেন) ফাংশন নাম ...)

জাল

স্নিপেট 12 - প্লট করা

plot(x,x.^2)

একটি ভেক্টর নিন x=-3:0.5:3এবং বাকীটি plotকরতে দিন । এটি চক্রান্ত করার জন্য আরও অনেকগুলি ক্রিয়াকলাপ হ'ল একটি খুব মৌলিক যা আপনি সর্বদা ব্যবহার করতে পারেন। এটি ইতিমধ্যে লিখতে যথেষ্ট হবে plot(v)এবং এতে থাকা ডেটা vঅ্যারে সূচকগুলির বিরুদ্ধে প্লট করা হবে। এটা কত সহজ? আপনি যদি আপনার প্লটটি স্টাইল করতে চান তবে কেবল তৃতীয় যুক্তি হিসাবে একটি স্ট্রিং যুক্ত করুন: উদাহরণস্বরূপ 'r:o'ডেটা পয়েন্টগুলির চারপাশে একটি লাল, বিন্দুযুক্ত রেখা তৈরি করা হবে। আপনি যদি একাধিক প্লট চান তবে কেবল আরও যুক্তি যুক্ত করুন বা ভেক্টরের পরিবর্তে ম্যাট্রিক ব্যবহার করুন। অব্যর্থ।পটভূমি

স্নিপেট 11 - ফাংশন হ্যান্ডলগুলি

f=@(x,y)x+y

এটি কোনও ফাংশন হ্যান্ডেলের একটি উদাহরণ যা এতে সঞ্চিত হয় f। এখন আপনি কল f(1,2)এবং পেতে পারেন 3। মাতলাব-এ ফাংশন হ্যান্ডলগুলি গণিতের ক্রিয়াকলাপগুলির জন্য খুব দরকারী (যেমন প্লট করা) এবং আপনি এগুলি একটি লাইনে সংজ্ঞায়িত করতে পারেন। তবে একটি অসুবিধা হ'ল আপনার শর্তসাপেক্ষে বা টুকরোমুখী থাকতে পারে না (এবং তাই কোনও পুনরাবৃত্তি হবে না)। আপনি যদি এটি চান তবে আপনাকে functionবিবৃতিটি ব্যবহার করতে হবে এবং একটি নতুন ফাংশন ঘোষণা করতে হবে, এবং তাদের প্রত্যেককেই একটি পৃথক ফাইলে সংরক্ষণ করতে হবে ... (WHYYYYY ????)

পিএস: আপনি whyকনসোলে টাইপ করলে আপনি আরও একটি মজাদার ইস্টার ডিম পাবেন : তারা একটি বিশাল ফাংশন তৈরি করেছে যা এলোমেলো বার্তা তৈরি করে:

The tall system manager obeyed some engineer.
The programmer suggested it.
It's your karma.
A tall and good and not excessively rich and bald and very smart and good tall and tall and terrified and rich and not very terrified and smart and tall and young hamster insisted on it.

... আপনি যদি কনসোলটি জিজ্ঞাসা করার জন্য যথেষ্ট মরিয়া হন তবে যা খুব স্বস্তিদায়ক why...

স্নিপেট 10 - আমার ম্যাট্রিক্স কেমন দেখাচ্ছে?

spy(eye(9))

আপনি এখনই জানেন যে eye(9)একটি 9x9 পরিচয় ম্যাট্রিক্স তৈরি করে। spyকেবল ম্যাট্রিক্সের শূন্য / ননজারো এন্ট্রিগুলি দেখায় এমন একটি তৈরি করে। তবে আপনি এটি কোনও বাইনারি 2 ডি ডেটা প্রদর্শনের জন্যও ব্যবহার করতে পারেন। আপনি যদি spyযুক্তি ছাড়াই কল করেন তবে আপনি একটি সুন্দর ছোট ইস্টার ডিম পাবেন =)

পরিচয় গুপ্তচর গুপ্তচর ইস্টেরেগ

স্নিপেট 9

kron(a,b)

kronফাংশন মূল্যায়ন Kronecker পণ্য দুটি ম্যাট্রিক্সের। এটি বিতর্কিত বহুমাত্রিক লিনিয়ার অপারেটরগুলির জন্য খুব দরকারী। কোড গল্ফিংয়ের জন্যও আমি এটি প্রতিটি এবং পরে ব্যবহার করেছি। আপনি এর এন্ট্রি সব সম্ভব পণ্য চান aএবং b? kron(a,b)তুমি এখানে যাও

স্নিপেট 8

5*a\b.*b

ঠিক আছে এখানে আমি 3 টি আলাদা অপারেটর মিশ্রিত করেছি। আপনি কোনও ম্যাট্রিক্স কেবলমাত্র ব্যবহার করে কোনও স্কেলারের দ্বারা গুণ করতে পারেন *। (তারপরে ম্যাট্রিক্সের প্রতিটি এন্ট্রি সেই স্কেলারের দ্বারা বহুগুণ হয়)। তবে *ম্যাট্রিক্সের গুণগুলিও সম্পাদন করে। আপনি যদি কোনও বিন্দু প্রিণ্ডেন্ড করেন তবে আপনি .*অপারেটরটি পাবেন, এটি একই আকারের দুটি ম্যাট্রিককে গুণ করলেও এন্ট্রি ওয়াইজ হবে । (এটি ডিভিশন অপারেটরগুলির মতো /এবং এর সাথেও করা যেতে পারে \))

এরপরে, ব্যাকস্ল্যাশ অপারেটরটি বাম বিভাগ হিসাবে ব্যবহার করা যেতে পারে (এর বিপরীতে আপনি /যেমন ডান বিভাগটি ব্যবহার করেন যেমন ব্যবহার করেন) তবে এটি মাতলাবের সবচেয়ে শক্তিশালী এবং বৈশিষ্ট্যযুক্ত অপারেটর: এটি একটি 'ম্যাট্রিক্স বিভাগ' সম্পাদন করে। বলুন যে আপনার কাছে রৈখিক সমীকরণের সিস্টেম রয়েছে A*x=bএবং আপনি এটির সমাধান করতে চান xতবে আপনি কেবল টাইপ করতে পারেন x=A\b। এবং \(আপনি /ম্যাট্রিকগুলির ক্ষেত্রে এটিও ব্যবহার করতে পারেন তবে এটি কম সাধারণ) প্রথমে ম্যাট্রিক্সটি দ্রুত বিশ্লেষণ করে এবং ফলাফলটি ব্যবহার করে এই বিপরীতমুখী-গুণটি সম্পাদন করার জন্য দ্রুততম অ্যালগরিদম খুঁজে পেতে! (যেমন দেখুন এখানে )

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

স্নিপেট 7

[a,b;c]

ঠিক আছে যা দেখতে খুব বেশি লাগে না, তবে এটি একটি খুব সুবিধাজনক সরঞ্জাম: ম্যাট্রিক্স কনটেন্টেশন। দুটি অভিব্যক্তির মধ্যে একটি কমা অর্থ দাঁড়ায় যে তারা অনুভূমিকভাবে সংক্ষিপ্ত হয়ে যায় (এর অর্থ তাদের একই উচ্চতা থাকতে হবে) এবং একটি অর্ধিকোলনের অর্থ পূর্ববর্তী 'লাইন' পরবর্তী 'লাইন' এর উপরে হবে (রেখার দ্বারা আমি দুটি সেমিকোলনের মধ্যবর্তী সমস্ত কিছু বোঝাতে চাইছি) শুধু একটি সহজ উদাহরণ: a = [1,2;3,4]; b = [5;6]; c =[7,8,9]; d=[a,b;c];একই পরিণাম ডেকে আনবে dযেমন d=[1,2,5; 3,5,6; 7,8,9](এটা পান?)।

স্নিপড 6

eye(7)

এই ফাংশনটি একটি সম্পূর্ণ 7x7 পরিচয় ম্যাট্রিক্স উত্পাদন করে। এটা যে সহজ। এর মতো অন্যান্য কাজগুলিও nan,inf,ones,zeros,rand,randi,randnএকইভাবে কাজ করে। (যদি আপনি দুটি টি আর্গুমেন্ট পাস করেন তবে আপনি ফলাফলের ম্যাট্রিক্সের উচ্চতা / প্রস্থ নির্ধারণ করতে পারেন)) আমি পরে দেখাব, আপনি সহজেই তৈরি করতে পারেন এবং (এবং খুব চাক্ষুষ উপায়ে) কনটেনেট ম্যাট্রিকেস (2 ডি-অ্যারে) যা স্যুও অভিশাপ কার্যকর এবং আপনাকে যদি সংখ্যাগতভাবে আংশিক ডিফারেনশিয়াল সমীকরণগুলি সমাধান করতে হয় তবে সহজ। (আপনি যখন পিডিইগুলি সমাধান করেন তখন সাধারণ পদ্ধতিটি ডেরিভেটিভ অপারেটরগুলিকে বিচ্ছিন্ন করে দেবে, মূলত আপনি কেবলমাত্র লিনিয়ার সমীকরণের একটি বিশাল ব্যবস্থা পাবেন যা সমাধান করা দরকার These এই ম্যাট্রিকগুলি সাধারণত বিরল (কেবল খুব অল্প কিছু শূন্য উপাদান) থাকে এবং কিছু প্রকারের থাকে প্রতিসাম্য।তাই আপনার নিজের প্রয়োজনীয় ম্যাট্রিক্স সহজেই 'রচনা' করতে পারেন।

স্নিপেট 5

a(a>0.5)

আমি আশা করি আপনি অ্যারে অ্যাক্সেস করার সমস্ত উপায় দ্বারা ক্লান্ত হয়ে উঠছেন না। এটি কিছু শর্ত পূরণ করে এমন অ্যারের সমস্ত উপাদান পেতে একটি সহজ উপায় দেখায়। এই ক্ষেত্রে আপনি এর সমস্ত উপাদানের একটি ভেক্টর পাবেন a0.5 এর চেয়ে বেশি। এক্সপ্রেশনটি a>0.5কেবলমাত্র aপ্রতিটি উপাদানের সাথে একই আকারের ম্যাট্রিক্স প্রদান করে যা শর্তটি সন্তুষ্ট করে এবং এমন 0প্রতিটি উপাদানগুলির জন্য একটি যা না করে।

স্নিপেট 4

a(:)

এটি আবার কেবল aকলামের ভেক্টর (এনএক্স 1 ম্যাট্রিক্স) হিসাবে অন্তর্ভুক্ত করে। আপনি আপনার ডেটা কলাম বা সারি ভেক্টর হিসাবে সংরক্ষণ করেছেন কিনা তা জানেন না বা আপনার ডেটা দ্বিমাত্রিক (যেমন 2 ডি সীমাবদ্ধ পার্থক্য পদ্ধতি))

স্নিপেট 3

1:9

আপনি সহজেই সেমিকোলন অপারেটর দিয়ে ভেক্টর তৈরি করতে পারেন (এই ক্ষেত্রে 1xn ম্যাট্রিকেস)। এই ক্ষেত্রে আপনি ভেক্টর পাবেন [1,2,3,4,5,6,7,8,9]। এটি অন্যান্য ভেক্টরগুলির টুকরোগুলি অ্যাক্সেস করার জন্য বিশেষত দুর্দান্ত কারণ যেমন ভেক্টরের a(2:4)দ্বিতীয়, তৃতীয় এবং চতুর্থ উপাদান অ্যাক্সেস করে a। আপনি এটিকে স্টেপ আকারের মতো ব্যবহার করতে পারেন 0:0.5:10or

স্নিপেট 2

i;

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

স্নিপেট ঘ

i

কমপ্লেক্স নম্বর একটি প্রাথমিক সংখ্যা প্রকার type (খুব খারাপ লোক iলুপের ক্ষেত্রে গণনা পরিবর্তনশীল হিসাবে ব্যবহার করে যে ক্ষেত্রে এটি ওভাররাইড হয়ে যায়))

ইন্ট্রো

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

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

** আপনি আপনার প্রোগ্রামগুলি বাছাই করতে পারেন বাছাই করতে পারেন, তবে এটি মূলত উত্স কোডটি একটি অপঠনযোগ্য ফাইলে রূপান্তর করে (মানুষের জন্য), মৃত্যুদন্ড কার্যকর করার সময় এটি তত বেশি দ্রুত হয় না।


1
আমার খুব প্রায়ই এই সমস্যা হয় ... সেটিং i ঘটে ... কোনও কিছুতে করা এবং তারপরে যখন জটিল ইউনিট না হয় তখন অপ্রত্যাশিত আচরণ অনুভব করি।
20-10

3
ইস্টের ইস্ট চমৎকার! আপনি 'সম্পাদনা গুপ্তচর' টাইপ করলে আপনি কোড আপত্তি :-) উদাহরণ খুঁজে পাবেন
আবুলাফিয়া

1
আমি এটি আপভোট করতে গিয়েছিলাম এবং তখন বুঝতে পারি আমার ইতিমধ্যে ছিল। হায় হায়, আমি যদি আবার এটি upvote করতে পারে। তাদের আসুন, @ ফ্লোয়ার!
অ্যালেক্স এ।

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

1
@ ফ্লোয়ার - ফ্যাক্টয়েডের পক্ষে, এ কথাটি উল্লেখ করাও শীতল হতে পারে যে historতিহাসিকভাবে, ম্যাটল্যাবটি মূলত কম্পিউটার বিশ্ববিদ্যালয় বিজ্ঞানের শিক্ষার্থীদের জন্য তৈরি হয়েছিল নিউ মেক্সিকো বিশ্ববিদ্যালয়ের (ক্লিভ মোলারের চেয়ারম্যান ছিলেন) একটি সহজ ইন্টারফেস হিসাবে LINPACK এবং EISPACK (... এখন দ্বারা বাতিল করা হচ্ছে LAPACK ) ফোরট্রান শিখতে করেও .... এবং ব্যবহারের তার আরাম কারণে এটি অন্যান্য শিক্ষা প্রতিষ্ঠান খুব দ্রুত ছড়িয়ে :)
rayryeng

35

CJam

নীচের স্নিপেটগুলি এখানে চেষ্টা করুন

দৈর্ঘ্যের 20 স্নিপেট:

q~{]__~z\z<=\~*0>*}*

একটি মিনি-মোড ক্যালকুলেটর । প্রশ্নের একটি অংশ:

Minmod ফাংশন পরিচিত একটি বৈকল্পিক মিনিট , যা আংশিক ডিফারেনশিয়াল সমীকরণ জন্য ঢাল সীমিত উচ্চ রিসোলিউশনের স্কিম উপস্থিত হয়। Slালুগুলির মধ্যে আপেক্ষিক চিহ্নগুলির যত্ন নেওয়ার সময় বেশ কয়েকটি opালু দেওয়া, এটি সর্বাগ্রে slালুটি বের করে।

ফাংশনটি প্যারামিটারগুলির একটি স্বেচ্ছাসেবী সংখ্যা নেয়। তারপরে মিনিমড (এক্স 1 , এক্স 2 , ..., এক্স এন ) হিসাবে সংজ্ঞায়িত করা হয়েছে:

  • মিনিট (এক্স 1 , এক্স 2 , ..., এক্স এন ) , সমস্ত এক্স যদি আমি কঠোরভাবে ইতিবাচক হয়
  • সর্বাধিক (x 1 , x 2 , ..., এক্স এন ) , সমস্ত x যদি আমি কঠোরভাবে নেতিবাচক হয়
  • 0 , অন্যথায়।

দৈর্ঘ্যের 18 স্নিপেট:

l'[,65>Dm>_el+_$er

একটি ROT13 এনকোডার। a-zA-Zইনপুট স্ট্রিং থেকে কেবলমাত্র অক্ষরগুলি STDIN এর মাধ্যমে স্থানান্তরিত করে

দৈর্ঘ্যের 15 স্নিপেট:

T1{_2$+}ri2-*]p

Nফিবোনাচি সিরিজ থেকে প্রথম সংখ্যাগুলি মুদ্রণের জন্য একটি সম্পূর্ণ প্রোগ্রাম যেখানে NSTDIN এর মাধ্যমে ইনপুট হিসাবে সরবরাহ করা হয়।

দৈর্ঘ্যের 12 স্নিপেট:

{{_@\%}h;}:G

একটি সাধারণ জিসিডি ফাংশন। এটি 2706 410 Gস্ট্যাক অন জিসিডি পেতে ব্যবহার করা যেতে পারে ।

দৈর্ঘ্য 11 স্নিপেট:

123456 789#

#শক্তি অপারেটর। এই স্নিপেট সিজেমের একটি দুর্দান্ত বৈশিষ্ট্য দেখায় যা এটি প্রায় সমস্ত গাণিতিক ক্রিয়াকলাপের জন্য বিগআইন্টসকে সমর্থন করে। সুতরাং উপরের কোড আউটপুট হয়

1596346205622537943703716803040694151242100030904924074732295184521676912291137885341977590649991707684635184329980991487148618486236239062505001539322685142817506810040361209550544146292158784625519911512640361780862459268161619223326802388689703997604303632605734938879647069477372395799326590488746599202521617640394227957532720581758771344616555153473551874187964029973716015080326283503474062024803237072761129557356772954771383125420283743787215768524095651476398918270831514362626616089349128838080859262141293069421199363839940462244772673481244848208112002212957221705577938865719802035511067875502253218277834350725436729497351901219311577128600087062378434520948898301738545267825952998284599001356281260973911216650526574435975050678439968995805415462116669892745933523276658479456263859786003695570642598885206779863730608803831608206418317758451327165760242416052588688579435998154295782751455020445483571514197850814391880423853968520336337963918534259580183058727377932419280412466915889059399591196961188841001024998633317094826403760131868252088477018937989608302521450181593409274231460335072324865982559395114735391976545471553525054490202974741119144469523879456646833238659929705233941114530149037245274032070536718197592615630616792756562341411027203615235147973615347081993563361626845258162606172599728677944001956482301240050182368840648532697569098833480384074404562991348377266778603059081932412368912313845464302833428950934701568958836851009236647605585910687215977468114323293396641238344799575626940766355697576957869656153567798618227770961980620119004224798449940378878601283741944503399682599666873704888519152796472231721010884561046439019823540214190109829183178504573391524533915085342799888899681052113605127068137552531204917650779012455136663716975904242872042805633443567570913936237754642040107392687168596924804730637819953463737212774674563401663682370631910559669378413063684132477269578881395521544729393136204246705936061735379354437327940116154383441927197123218522827575163913310005036963663583344508839784971260123709283218409462028161021477446586507813599051643059982983426688872855309396405653159417356549291603532443699350168178837164682957610433456205211423600319694496115159970718912091395232327389520091646132878609779171226748990343349416763319432268713023302555895744813731889452605219001900815755497209921418814092923394321459962373890912709775151652200071533644718727513889263907829300496554849544461628702471995210369421320165755673222520834013956492183306187393652197405863508709529644837118590847002900783148394313160749018413291215958936871830666201928218294362550829287373305552379418641499562597137520153409556227576809855521876196531587454478159211299517511047868125975115347272184123454929507976958328038242400918390689757262398695703472270927183494613959476164389143107240083171566284628032072645081703351075328092783401422849512230275075331561337345714881104575020436358133210849231625973013523497330004645467493618279226202227586584610761439335895760888873155403816627190368675397978355381544497413492223577022267403347927237298551052219150516984577176643706356698282552857754120841266435149587248192704898338826251727748499150285409036076919533685800933215325289882260771526293167171975367192287689881199864600661035143522211647660445960687046757311913589429739868592726372013684511683081229044622752191694278221303073075505531920922815724661725685493922212700535444400760813940151761980008355835574184921854364539924999643954874549857103642483664109073938527328920827803218865362851320233433429604394590974694396314165313743853607609394553133883545319222169958204731303672940856293527174545435349105954532301106962634516087237739490953930886293289854731305112253177512851251930821765454042415085420000484369355605183062368648992392499663861508991984554431113080399485470268940148600970493633737364443822752829774334511729579419931500217970224646496435527826186627011323464848141074486509849545954714213290443775688291020289759390171236344528896

দৈর্ঘ্য 10 স্নিপেট:

"`%W_"_W%`

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

দৈর্ঘ্য 9 স্নিপেট:

5,K,+_&S*

এই স্নিপেট সিজেমের অনেকগুলি বৈশিষ্ট্য প্রদর্শন করে,

5, "create an array of numbers 0 to 4"
K, "create an array of numbers 0 to 19"
+  "List concatination"
_  "Duplicate top stack element"
&  "Set distinct operator in this case"
S* "Join array elements with space character"

দৈর্ঘ্য 8 স্নিপেট:

"`_~"`_~

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

দৈর্ঘ্য 7 স্নিপেট:

"AB"_m*

m*শীর্ষ দুটি স্ট্যাক উপাদানগুলির সমস্ত কার্টেসিয়ান পণ্য তৈরি করে। উদাহরণস্বরূপ, উপরের কোড করা হবে ["AA" "AB" "BA" "BB"]স্ট্যাক, যার মধ্যে কার্টিজিয়ান পণ্য "AB"এবং "AB"

দৈর্ঘ্যের 6 টি স্নিপেট:

"_~"_~

একটি সুন্দর খুঁজছেন পুনরাবৃত্তি কোড। এটি চালাবেন না :)। কোডের এই উপস্থাপনাটি সিজেএমের সর্বাধিকতম কুইনের ভিত্তি। আপনি "_~"স্ট্যাকের উপর স্ট্রিং রেখেছেন , একটি অনুলিপি তৈরি করুন ( _) এবং এটি মূল্যায়ন করুন। আপনি সর্বাধিক পুনরাবৃত্তি ব্যতিক্রম না পৌঁছা পর্যন্ত কোনটি আবার একই জিনিস আবার (এবং আবার ..) করে।

দৈর্ঘ্য 5 স্নিপেট:

{A}:F

সিজেমে একটি বেসিক ফাংশনটি এইভাবে কাজ করে, উপরের এক্সপ্রেশনটি কোড ব্লককে {A}ভেরিয়েবলের জন্য বরাদ্দ করে F। এখন আপনার কোডে, আপনি Fকোড ব্লক চালাতে যে কোনও জায়গায় রাখতে পারেন (এবং 10এই ক্ষেত্রে পেতে )

দৈর্ঘ্য 4 স্নিপেট:

"A"~

আপনি যে কোনও কোড ব্লক বা স্ট্রিং বা এমনকি একটি একক অক্ষর ব্যবহার করে মূল্যায়ন করতে পারেন ~। উপরের অভিব্যক্তি ফলাফল10

দৈর্ঘ্য 3 স্নিপেট:

Kmr

0 থেকে K20 পর্যন্ত রেঞ্জের একটি সাধারণ এলোমেলো সংখ্যা জেনারেটর ।

দৈর্ঘ্য 2 স্নিপেট:

es

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

দৈর্ঘ্য 1 স্নিপেট:

A

সিজামের প্রায় সমস্ত মূল বর্ণমালা পূর্বনির্ধারিত ভেরিয়েবল হিসাবে রয়েছে। A10, B11 এবং 11 Kঅবধি 20. Pহয় pi (3.141592653589793), Nনতুন লাইন এবং আরও অনেকগুলি । আপনার যখন ভেরিয়েবলের প্রাথমিক মানগুলির প্রয়োজন হয় বা আপনার যখন 1 বাইটে দুটি অঙ্কের সংখ্যা প্রয়োজন হয় তখনও এটি খুব কার্যকর হতে পারে।

Factoid

সিজেএম গল্ফস্ক্রিপ্ট দ্বারা অনুপ্রাণিত কিন্তু এর উপরে নেটওয়ার্ক জিইটি কলের সমর্থন সহ অনেকগুলি বৈশিষ্ট্য তৈরি করে: ডি

PS: আমি প্রতি 5 টি upvotes বা প্রতি 2 ঘন্টা (যা আগে আগে ছিল) উত্তর আপডেট করার চেষ্টা করব


আপনার রট 13 উদাহরণের সাথে কিছু সমস্যা রয়েছে: পি তবে আমি কোয়াইন দ্বারা মুগ্ধ, আমি মনে করি আমি এটি ধার করব :)
অ্যাডিতু

@ অ্যাডিটসু কি সমস্যা?
অপ্টিমাইজার

এটি এনজেড অক্ষরের ক্ষেত্রে পরিবর্তন করে। এছাড়াও, এটির কোনও কারণ ছাড়াই একটি @ রয়েছে, আপনি পরিবর্তে ডিটি সেখানে রাখতে পারেন।
অদিতসু

@ অ্যাডিটসু প্রেটি নিশ্চিত যে এটি একটি জট-জেডএ-জেড পরিসীমা জুড়ে একটি ROT 13 এবং কেস পরিবর্তনের কারণ এটি। আপনি কি এটি পড়তে পারবেন না? এটি কেবল আপনার নিজস্ব ভাষা: পি @ সেখানে 18 টি অক্ষর রয়েছে বলে আমি অনুমান করি: ডি
অপ্টিমাইজার 17

ROT13 সাধারণত এটি করে না। আমি বুঝতে পারি না আপনি কেন জিজ্ঞাসা করছেন যে আমি আমার নিজস্ব ভাষা পড়তে পারি, সমস্যাটি প্রোগ্রামটি কী করে তা বোঝার বিষয়ে নয়, তবে এটি প্রত্যাশিত যা করে না তা বাস্তবতার বিষয়ে নয়।
aditsu

34

কমন লিস্প

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

অগত্যা মূল্যবোধের কিছু না করার পরেও আমি প্রতিটি স্নিপেটের নিজস্ব হয়ে চালানোর জন্য চেষ্টা করব। অতিরিক্ত হিসাবে, যেহেতু আমি কমন লিস্প ব্যবহার করছি, মৌলিক ধারণা এবং প্রচুর বাক্য গঠন অন্যান্য উপভাষায় প্রয়োগ হয়, তবে কিছু ফাংশন কাজ করবে না, বলুন, স্কিম।

দৈর্ঘ্য 1

*

কোডিংয়ের জন্য এস-এক্সপ্রেশন এবং তালিকাগুলির ব্যবহারের উপর জোর দেওয়ার কারণে, লিস্পে খুব অল্প সংখ্যক বৈধ এক্সপ্রেশন রয়েছে যার মধ্যে বন্ধুত্ব নেই, পরমাণু বলে। REPL এ সরাসরি টাইপ করা যেকোন কিছু (পঠন-alওয়াল-মুদ্রণ লুপ) একটি পরিবর্তনশীল হিসাবে বিবেচনা করা হয় এবং এরূপ হিসাবে মূল্যায়ন করা হয়। *REPL দ্বারা মুদ্রিত পূর্ববর্তী মানটি ধারণ করে।

দৈর্ঘ্য 2

()

এটি খালি তালিকা, লিস্পের অন্যতম গুরুত্বপূর্ণ প্রতীক। লিস্পে প্রতিটি যথাযথ তালিকা খালি তালিকার সাথে সমাপ্ত হয়, সি-এর প্রতিটি সঠিক স্ট্রিং কীভাবে শেষ হয় তার সমান \0

দৈর্ঘ্য 3

(*)

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

দৈর্ঘ্য 4

`(1)

এটি একটি কনস সেল, যা একে একে যুক্ত করার উপাদানগুলির এক অন্য উপায়। লিস্পে প্রতিটি তালিকায় কনস কোষগুলির সাথে সংযুক্ত কনস কোষ থাকে, যেখানে প্রথম উপাদান (দ্য car) হ'ল মান এবং দ্বিতীয় উপাদান (দ্য cdr) পরবর্তী কনস সেলগুলিতে নির্দেশ করে। এটি লিপডকে লিঙ্কযুক্ত তালিকার উপর ভিত্তি করে তৈরি করে। এই নির্দিষ্ট কনস সেলটিতে সিডিআর 1হিসাবে গাড়ী এবং খালি তালিকা রয়েছে।

দৈর্ঘ্য 7

(not t)

আমি লিস্পে সত্যের মূল্যবোধগুলিকে স্পর্শ করতে চাই। এই ফিরে আসবে nil। কমন লিস্পে tসত্যের জন্য প্রতীক nilএবং ()মিথ্যা উপস্থাপন করে এবং একে অপরের সমান হয় তবে লক্ষ করুন যে এই সংজ্ঞাটি সমস্ত লিস্প উপভাষার জন্য মান নয়; উদাহরণস্বরূপ, স্কিমটি #fমিথ্যা এবং '()খালি তালিকার মধ্যে পার্থক্য করে।

দৈর্ঘ্য 9

(cdr ())

যেমনটি আমি আগেই বলেছি, সিডিআর হ'ল তালিকার লেজ উপাদান, যা আপনি ফাংশনটির সাথে পেতে পারেন cdr। তেমনি, আপনি ফাংশন সহ মাথা উপাদান, গাড়ী পেতে পারেন car। খুব সহজ, তাই না? খালি তালিকার গাড়ি এবং সিডিআর দুটোই nil

দৈর্ঘ্য 10

(cons 1 2)

অবশেষে, তালিকা সহ কাজ শুরু করার জন্য যথেষ্ট দৈর্ঘ্য। consগাড়ী হিসাবে প্রথম পরামিতি এবং সিডিআর হিসাবে দ্বিতীয়টি একটি কনস সেল তৈরি করে। পরিবর্তে মুদ্রণ আউট (1 2), এটি দেয় (1 . 2)। দৈর্ঘ্য 2 স্নিপেটে ফিরে যাওয়া, একটি সঠিক তালিকা খালি তালিকার সাথে শেষ হওয়ার কথা, সুতরাং শেষ কনস সেলটির সিডিআরটি খালি তালিকার দিকে নির্দেশ করা উচিত। এই ক্ষেত্রে, সর্বশেষ কনস সেলটি ইঙ্গিত করে 2, সুতরাং লিস্প আমাদের জানিয়ে দেয় যে আমাদের কাছে একটি অনুচিত তালিকা রয়েছে, তবে তবুও কীভাবে আপনি সি-স্ট্রিং তৈরি করতে পারবেন তার মতো আমাদের এটি করার অনুমতি দেয় \0

দৈর্ঘ্য 11

(cons 1 ())

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

দৈর্ঘ্য 12

(cdr `(1 2))

এই আউটপুট হবে (2), না 2কিছু লোক অনুমান হিসাবে। মনে রাখবেন, প্রতিটি সিডিআর অন্য কনস সেল বা খালি তালিকার দিকে নির্দেশ করার কথা; স্পষ্টতই 2খালি তালিকা নয়, সুতরাং এটি অবশ্যই অন্য একটি কনস সেল হতে হবে একটি গাড়ি 2এবং একটি সিডিআর()

দৈর্ঘ্য 13

'#1=(1 . #1#)

এটি কেবলমাত্র একক মান 1 দিয়ে একটি বিজ্ঞপ্তি তালিকা তৈরি করবে যদি এটি মুদ্রিত হয় তবে এটি চিরকালের জন্য "(1 1 1 1 ..." মুদ্রণ করবে, যাতে অনুশীলনে এটি একটি অসীম তালিকা হিসাবে বিবেচিত হতে পারে (যার উপর আপনি cdrঅসীম সময়ে করতে পারেন সর্বদা একই ফলাফল পেতে, নিজেই!)। Tবিশ্বব্যাপী ভেরিয়েবলের জন্য যদি কেউ নিয়োগ না দেয় তবে এক্ষেত্রে *print-circle*এটি মুদ্রিত হবে #1=(1 . #1#)


এই শেষ সম্পাদনা! দ্রুত, কেউ একটি বিটলস-থিমযুক্ত ইসলং তৈরি করুন: ডি
এস।

1
@fedes। জন ম্যাকার্থি, পল ম্যাককার্টনি ... ভাষাটির নাম হবে কারথি কার্টনি।
বিড়াল

33

জিএনইউ মেক করুন

আমি এই একটি অঙ্গ নেভিগেশন যাব। আমি মনে করি makeপিপিসিজিতে এটি প্রথমবার হতে পারে ।

Factoid

মেককে একটি কার্যকরী ভাষা হিসাবে বিবেচনা করা যেতে পারে।

দৈর্ঘ্য 0 স্নিপেট

আমি মনে করি না দৈর্ঘ্যের 0 টি স্নিপেট প্রয়োজন, তবে এখানে যাইহোক এটি একটি। আমি মনে করি এটি সমস্ত দৈর্ঘ্যের 0 টি প্রোগ্রামের মধ্যে সবচেয়ে দরকারী হতে পারে। একটি খালি মেকফিল (বা এমনকি কোনও মেকফিল নেই) দিয়ে, মেকের এখনও বিল্ট-ইন বিধিগুলির একটি গুচ্ছ রয়েছে। উদাহরণস্বরূপ, বর্তমান ডিরেক্টরিতে .c ফাইল উপস্থিত থাকলে একটি .o বা বাইনারি একটি .c ফাইল সংকলন করার জন্য ডিফল্ট অন্তর্নির্মিত নিয়ম রয়েছে। সুতরাং আমরা যদি:

make hello.o

Make to .c to .o নিয়মটি খুঁজে নিন এবং হ্যালো.ও দিতে হ্যালো.কম সংকলন করুন

একইভাবে যদি আমরা করি:

make goodbye

বর্তমান ডিরেক্টরিতে কোনও বিদায়.সি ফাইল থাকলে এটি বিদায় বাইনারিতে সংকলিত হবে।

দৈর্ঘ্য 1 স্নিপেট

TAB

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

দৈর্ঘ্য 2 স্নিপেট

$@

এটি রেসিপিগুলিতে ব্যবহারের জন্য একটি স্বয়ংক্রিয় পরিবর্তনশীল। এটি নিয়মের টার্গেটের ফাইলনামে প্রসারিত হবে। আছে অন্যান্য দরকারী স্বয়ংক্রিয় ভেরিয়েবল

দৈর্ঘ্য 3 স্নিপেট

a:=

স্বল্পতম সহজভাবে প্রসারিত ভেরিয়েবল অ্যাসাইনমেন্ট। ভেরিয়েবলটি "" মেকফিলটি প্রথম পার্স করার সাথে সাথেই সেট করা থাকে। পরিবর্তে আমরা যদি করি a=, তবে অ্যাসাইনমেন্টটি পুনরাবৃত্তভাবে প্রসারিত হবে, অর্থাৎ পরিবর্তনশীল প্রকৃতপক্ষে রেফারেন্স হওয়ার সময় অবধি বিস্তৃতি মুলতবি করা হয়।

দৈর্ঘ্য 4 স্নিপেট

W:;w

স্বল্পতম প্রান্তিক কার্যকর সম্পূর্ণ বিধি নির্দিষ্টকরণ। এটি একটি শুল্কের সাথে একটি লক্ষ্য নির্ধারণ করে Wযা কেবল wশেল কমান্ড চালায় । এইভাবে

make W

সমান:

w

এটি একটি বিকল্প নিয়মের বাক্য গঠন যা রেসিপিটি একই লাইনের লক্ষ্যটিকে একটি নতুন লাইনের দ্বারা পৃথক করে follows আরও সাধারণভাবে রেসিপি লাইনগুলি তত্ক্ষণাত পৃথক লক্ষ্য রেখা অনুসরণ করে, TABপ্রতিটি রেসিপি লাইন থেকে শুরু করে অক্ষরগুলি।

দৈর্ঘ্য 5 স্নিপেট

$(@D)

আর একটি স্বয়ংক্রিয় পরিবর্তনশীল। অনুরূপ $@, তবে এটি ফাইলের নাম এবং ট্রেইলিং / মুছে ফেলা সহ পথের ডিরেক্টরি অংশে প্রসারিত।


কিছু স্ট্রিং ফাংশন $(basename )বা মত $(patsubst )? ( যেমন। )
লুসার droog

32

Marbelous

দৈর্ঘ্যের 14 স্নিপেট

}0}1
Mulx
HxHx

এই স্নিপেট মার্বেলাসের আরও কয়েকটি গ্রন্থাগার দেখায় এবং একটি নতুন ধারণা, যার নাম মাল্টি-সেল বোর্ড প্রবর্তন করে। Mulxবোর্ড ইনপুট হিসাবে দুই মার্বেল নেয় এবং 2 মার্বেল আউটপুট। মার্বেলগুলি যা প্রান্তের বামতম কক্ষে প্রবেশ করে সেগুলি বোর্ডের ডিভাইসগুলির Mulxসাথে সামঞ্জস্য করবে }0এবং ডানদিকের ঘরের সাথে প্রবেশ করবে }1। আনুষাঙ্গিকভাবে, আউটপুটগুলি বিভিন্ন কোষ থেকেও বেরিয়ে আসবে। বোর্ডের প্রস্থটি এমন MAX(1, highest output device + 1, highest input device + 1)কোষ হিসাবে গণনা করা যেতে পারে যা কোনও ইনপুট ডিভাইসের সাথে সামঞ্জস্য করে না এমন কোনও মার্বেল তাদের উপর পড়বে tra

দৈর্ঘ্যের 13 স্নিপেট

7E
??
>Y!!
{0

এটি এমন একটি বোর্ড যা প্রতিটি টিকের জন্য একটি এলোমেলো মুদ্রণযোগ্য আসকি চরিত্র ছিটিয়ে দেবে। মার্বেলসের এলোমেলো মান উত্পন্ন করার দুটি উপায় রয়েছে। সেখানে ??0 এবং এর মধ্যে প্রাপ্ত ইনপুট মার্বেলটি সমেত, এবং ?n: যথাক্রমে 0 এর মধ্যে একটি এলোমেলো মান ?0প্রদান ?Zকরে। যেটির সাথে খুব মিল রয়েছে ??। আমাদের রয়েছে !!যা বোর্ডকে সমাপ্ত করে এমনকি সমস্ত আউটপুট পূরণ না করলেও। ?nমার্বেলস ব্যবহার করে কীভাবে ডিভাইসগুলি বোর্ড হিসাবে প্রয়োগ করা যেতে পারে তা আপনি বুঝতে পারেন ???

দৈর্ঘ্যের 12 স্নিপেট

}0}1
Fb//
Dp

এখানে আমরা মার্বেলাসের কয়েকটি গ্রন্থাগার ফাংশন দেখতে পাই। Fbএনপুট মার্বেল যেখানে n তম ফিবোনাচি নম্বর আউটপুট। Dpদশমিক সংখ্যা হিসাবে STDOUT এ ইনপুট মার্বেলটি মুদ্রণ করে। এগুলি উভয়ই মার্বেলাসে প্রয়োগ করা হয় এবং যখন আপনি অনলাইন দোভাষীগুলিতে লাইব্রেরি অন্তর্ভুক্ত করে পরীক্ষা করেন , তখন অজগর দোভাষীর জন্য আপনাকে প্রতিটি ফাইল পরিষ্কারভাবে অন্তর্ভুক্ত করতে হবে। এই বোর্ড inplementation খুঁজে পাওয়া যেতে পারে GitHub উপর । নোট করুন যে এই নির্দিষ্ট প্রোগ্রামটিতে 2 ইনপুট লাগে এবং ফিবোনাচি বোর্ডকে দু'বার কল করবে। যে বোর্ডগুলি বলা হয় বোর্ডগুলি যে বোর্ডগুলি ডেকেছিল তার এক টিকের মধ্যে ফিরে আসে।

দৈর্ঘ্যের 11 স্নিপেট

}0}0
{<{0{>

এটির কিছু ব্যাখ্যা দরকার। }0ডিভাইস, imputs যেহেতু তারা একই সংখ্যক (0), তারা একই মান উপস্থিত থাকবে যখন এই বোর্ডের নামক পায়। নীচের সারিতে থাকা তিনটি ডিভাইস আউটপুট। {<বোর্ডের বামে {0আউটপুট , বোর্ডের প্রথম কক্ষের নীচে {>আউটপুট এবং ডানদিকে আউটপুট। সমস্ত স্বতন্ত্র আউটপুট ডিভাইসগুলি পূরণ করা হলে কেবল আউটপুটটি ধাক্কা দেওয়া হয়। তবে এই ক্ষেত্রে ডান আউটপুট ডিভাইসটি কখনই পৌঁছায় না। তত্ক্ষণাত্ অভাবের কারণেই বোর্ডটি প্রস্থান করবে এবং যাইহোক দুটি মান আউটপুট করবে। আপনি কী ভাবতে পারেন যে /\একজন মার্বেলাস বোর্ড হিসাবে কীভাবে প্রয়োগ করতে পারে ?

দৈর্ঘ্যের 10 স্নিপেট

..40
FF
\\

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

দৈর্ঘ্য 9 স্নিপেট

00
\\/\]]

এটি মার্বেলসের বিড়ালের একটি প্রাথমিক সংস্করণটি প্রয়োগ করার সবচেয়ে সংক্ষিপ্ততম উপায়। 00 \ / \ এমন একটি লুপ যা প্রতি দ্বিতীয় টিকটিতে ডিভাইসে একটি 00মান মার্বেল রাখে ]]। এটি একটি STDIN ডিভাইস। কোনও মার্বেল যখন এই ডিভাইসে অবতরণ করে, এটি STDIN থেকে প্রথম অক্ষরটি পড়ার চেষ্টা করে, যদি সেখানে থাকে তবে তা নিচে নামিয়ে আনা হয় (এবং এই ক্ষেত্রে আবার মুদ্রিত হয়)। যদি এটি না থাকে তবে আসল ইম্রাবলটি ডানদিকে ঠেলে যায়। (এবং এই ক্ষেত্রে ট্র্যাশ করা হয়েছে)

দৈর্ঘ্য 8 স্নিপেট

}0
~~
{0

এই স্নিপেট কয়েকটি বৈশিষ্ট্য দেখায়। প্রথমত এটি} 0 এর মাধ্যমে ইনপুট নেয়। এই ক্ষেত্রে এটি মূল বোর্ড এবং এটি কমান্ড লাইন ইনপুট দ্বারা প্রতিস্থাপন করা হবে। আপনি এই ফাংশনটিকেও কল করতে পারেন, সেক্ষেত্রে কমান্ড লাইন ইনপুটের পরিবর্তে যুক্তি নেওয়া হবে। তারপরে ~~, যা কিছুটা অপারেটর নয়। এর পরে, আমাদের কাছে পাওয়া যায় }0, যদি সমস্ত }nডিভাইস পূরণ করা হয় তবে এই মানগুলি ফাংশনগুলি ফেরতের মান হিসাবে ফিরে আসে। (মার্বেলাস ফাংশন প্রতি একাধিক রিটার্ন মান সমর্থন করে)

দৈর্ঘ্যের 7 স্নিপেট

00
\\/\

এটি মার্বেলাসে আপনি তৈরি করতে পারেন এমন সবচেয়ে কমপ্যাক্ট অসীম লুপ। \\ডিভাইস ডানদিকে কোনো মার্বেল push কর্মের, /\কপি একটি মার্বেল এবং ডানে বামে পরস্পরের মধ্যে বলাবলি করতে কপি push কর্মের। যেহেতু বোর্ডটি কেবল দুটি কক্ষ প্রশস্ত, ডানদিকে মার্বেল যদিও ট্র্যাশ হয়ে যায়।

দৈর্ঘ্যের 6 টি স্নিপেট

46MB75

এখানে পুনরাবৃত্তির একটি উদাহরণ দেওয়া হয়েছে MB( Fuপ্রতিটি FuFuFuFuFuFu...স্পষ্টে প্রবন্ধে প্রবন্ধের নামকরণের আগেই স্পষ্টরূপে নামকরণ করা মূল বোর্ডটি কল করা যায় না (

দৈর্ঘ্য 5 স্নিপেট

2A
++

কিছু গাণিতিক, মার্বেলটির মানটি 2Aপ্রথমে টিকের উপরে নেমে আসে এবং সেগুলি ++সেলটিতে পাওয়া যায় । এটি অপারেটর is এই নির্দিষ্ট অপারেটরটি তার উপরের যে কোনও মার্বেলকে বাড়িয়ে দেয় এবং এটি নীচে পড়তে দেয়। মার্বেলটির এখন মূল্য আছে 2Bএবং বোর্ডের বাইরে পড়ে। এটি +STDOUT এ মুদ্রণ করে।

দৈর্ঘ্য 4 স্নিপেট

:
24

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

দৈর্ঘ্য 3 স্নিপেট

:Bo

এটি একটি নামী বোর্ড, যার কোনও দেহ নেই, আমরা Boযেকোন বোর্ডের কক্ষে লিখিত ( Boনিজেই) এই বোর্ডটিকে কল করতে পারি

দৈর্ঘ্য 2 স্নিপেট

3A

এই কোডটি 1x1 ঘরের (প্রতিটি ঘর দুটি অক্ষর প্রশস্ত) বোর্ডের MBমূল , যার নাম অন্তর্ভুক্ত (প্রধান বোর্ডের জন্য)। এটি 3Aমার্বেলটি যখন বোর্ড থেকে পড়ে তখন এর হেক্সাডেসিমাল মানের আসকি মানটি মুদ্রণ করে । এই প্রোগ্রামের আউটপুট ঠিক তাই ঘটে এর উত্স কোড হতে:

দৈর্ঘ্য 1 স্নিপেট

:

পাশাপাশি #, এটি দু'জনের মধ্যে একমাত্র বৈকল্পিক 1 চরিত্রের অনুষ্ঠানটি মার্বেল in #এটি একটি মন্তব্যের সূচক যা খুব আকর্ষণীয় নয়। :মার্বেলকে বলে যে আপনি একটি বোর্ড ঘোষণা করতে চলেছেন। উভয় সংকলক উভয়েরই যত্ন নেই যে আপনি বোর্ডটির নাম বা সংজ্ঞাটি দিচ্ছেন না। প্রোগ্রামটি কিছুই করে না।

factoid:

মার্বেলসগুলি এই সাইটে লোকেরা বিকাশ করেছিল, কিছু ভাষার নাম যা এই ভাষার জন্য চলছিল তারা ছিল রুবে এবং কেবল মার্বেলস


2
আমাকে এটি মারধর। সুন্দর স্নিপেটস!
স্পার

আপনার দৈর্ঘ্যের 12 স্নিপেটটি দুটি ইনপুট লাগবে এবং দুটি পৃথক ফাইবোনাকি নম্বর মুদ্রণ করবে। যে ইচ্ছাকৃত ছিল?
স্পার

@ স্পার, হ্যাঁ এটি মার্বেলাসে কিছুটা কীভাবে কাজ করে তা প্রদর্শন করা ছিল।
ওভাররেেক্টর

সম্ভবত ব্যাখ্যা এটি যোগ করতে পারেন? আপনি যা লিখেছেন তা থেকে, আমি স্নিপেটটি একটি ইনপুট এবং একটি ফাইব নম্বর আউটপুট নেওয়ার প্রত্যাশা করতাম।
স্পার

আমি সত্যিই আশা করি আপনি 40 পয়েন্টে পৌঁছে যাবেন তাই আমার ফিবোনাচি ফাংশনটি ফিট হয়ে যাবে ...
স্পার

31

বের

ফোর্থটিতে কেবল দুটি প্রকার রয়েছে, ইনটস এবং ফ্লোটস (এবং ফ্লোটগুলি বিকল্প! আপনি এটি ব্যবহার কিভাবে এটি সব!

দৈর্ঘ্য 1

.

.কমান্ড (বা "শব্দ" হিসেবে আমরা একে বলতে) ডেটা স্ট্যাকের উপর পূর্ণসংখ্যা মান আউট ছাপে; যদি স্ট্যাকটি খালি থাকে তবে আপনি রানটাইম ত্রুটি পান। এটি স্ট্যাক থেকে মানটিও সরিয়ে দেয় - আমরা কীভাবে এটি রাখতে পারি তা দেখার জন্য আপভোট করুন!

দৈর্ঘ্য 2

.s

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

দৈর্ঘ্য 3

see

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

দৈর্ঘ্য 4

1 0=

আমি কি উল্লেখ করেছি যে ফোর্থ পোস্টফিক্স অপারেটরগুলির সাথে স্ট্যাক-ভিত্তিক ভাষা? টাইপিং স্ট্যাকের দিকে 1 0=ধাক্কা 1দেয় এবং তারপরে 0=শব্দটি কার্যকর করে, যা স্ট্যাকের উপরের মানটিকে পপ করে এবং trueযদি 0 falseনা করে তবে এটি সমান হয় যদি ধাক্কা দেয়। 0=এটি একটি সুবিধার শব্দ 0 =; প্রচলিত মান + শব্দের সংমিশ্রণের জন্য এর মতো কয়েকটি শর্টহ্যান্ড শব্দের মত রয়েছে 1+এবং পছন্দ হয় 0<>। তদুপরি, যখন falseফোর্থে 0 হয় এবং কোনও ননজারো মান সত্য হয়, অন্তর্নিহিত পরীক্ষার শব্দগুলি trueসত্য ফলাফলের জন্য ফিরে আসে এবং trueসমস্ত পথে যায় - এটি সমস্ত বিট সেট সহ মান, অর্থাত্ -1,!

দৈর্ঘ্য 5

-1 u.

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

দৈর্ঘ্য 6

." Hi"

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

দৈর্ঘ্য 7

: + - ;

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

দ্রষ্টব্য: কিছু শব্দ বাইরে শব্দের চেয়ে অন্য শব্দের সংজ্ঞায় বিভিন্ন জিনিস করে তবে নিয়ন্ত্রণ কাঠামো ব্যতীত এগুলি সমস্ত সুন্দর pretty বেশিরভাগ শব্দগুলি বাইরের মতো সংজ্ঞার ভিতরে একই জিনিস করে তবে কখনও কখনও সেই জিনিসটি সুস্পষ্ট হয় না - : show-see see see ;আপনি যা ভাবেন তা করবে না!

দৈর্ঘ্য 8

: 42 - ;

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

দৈর্ঘ্য 9

IF 1 THEN

অবশেষে , কিছু পরিচিত! স্পষ্টতই, এই কোডটি পরীক্ষা করে এর যুক্তিটি 1সত্য কিনা এবং যদি তাই হয় তবে এর পরে যা কিছু ঘটায় তা কার্যকর করেTHEN ডান কার্যকর করে? ভুল। যখন এক্সিকিউশনটি পৌঁছে যায় IF, স্ট্যাকের শীর্ষের মানটি পপড হয়ে যায়, এবং যদি সেই মানটি সত্য হয় (অর্থাত্ ননজারো), কার্যকর হয় তার ভিতরে যা থাকে তার সাথে IF ... THENএবং তারপরে যা কিছু থাকে তার সাথে চালিয়ে যায় THEN; যদি মানটি শূন্য হয় তবে আমরা কেবল পরে চলে যাই THEN। দ্রষ্টব্য, কীভাবে এই শব্দগুলি অভ্যন্তরীণভাবে প্রয়োগ করা হয় (যা অন্যান্য ফোর্থ শব্দের ক্ষেত্রে!) IFএবং THENকেবলমাত্র একটি শব্দ সংজ্ঞাতে ব্যবহার করা যেতে পারে, "ব্যাখ্যার রাজ্যে" নয় inside

দৈর্ঘ্য 12

( x y -- y )

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

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

ঘটনাচক্রে, দেখানো স্ট্যাক এফেক্টটি nipশব্দের জন্য। এটি কেবল মন্তব্য থেকে কী তা জানাতে সক্ষম হওয়া উচিত।

দৈর্ঘ্য 13

1 2 3 4 d+ d.

পূর্বে ইঙ্গিত হিসাবে, একটি ফোর্থ মানের ধরণের ধরন আপনি এটি কীভাবে ব্যবহার করেন - আপনি যদি কোনও মানকে পয়েন্টার হিসাবে ব্যবহার করেন তবে এটি একটি পয়েন্টার এবং যদি সেই মানটি ভাল পয়েন্টার না হয় তবে এটির হিসাবে এটির আচরণ করার জন্য এটি আপনার দোষ। যাইহোক, আপনি কোনও ধরণের মান হিসাবে কীভাবে আচরণ করছেন তা নির্বিশেষে, এটি সর্বদা ডেটা স্ট্যাকের জন্য একটি কক্ষ গ্রহণ করবে; ব্যতিক্রমগুলি হ'ল ডাবল সেল বা ডাবল স্পষ্টতা পূর্ণসংখ্যা । এটি পূর্ণসংখ্যা যা স্ট্যাকের দুটি মান দ্বারা প্রতিনিধিত্ব করা হয়, আপনাকে যথারীতি দ্বিগুণ বিট দিয়ে পাটিগণিত সম্পাদন করতে দেয়। আরও তাত্পর্যপূর্ণ বা উচ্চতর-বিট ঘরটি কম তাৎপর্যকৃত বা নিম্ন-বিটের একটিতে শীর্ষে স্থাপন করা হয়, যাতে 1 0এটি দ্বিগুণ কক্ষের প্রতিনিধিত্ব করে 1, এবং0 1আপনার ফোর্থের নিয়মিত কোষগুলি কত বড় তার উপর নির্ভর করে হয় 2 ^ 32 বা 2 ^ 64 হয়। স্বাভাবিকভাবেই, একটি ডাবল-কক্ষের মান হিসাবে এইরকম আচরণ করার জন্য, আমাদের এমন শব্দ ব্যবহার করা উচিত যা স্পষ্টভাবে ডাবল-কক্ষের মানগুলিতে কাজ করে; এগুলি সাধারণত d(বা udস্বাক্ষরযুক্ত স্বাক্ষরিত) পরে একই একক কোষ শব্দের নাম: d+অতিরিক্ত d<হিসাবে তুলনা করার d.জন্য, মুদ্রণের জন্য, ইত্যাদি by


+1 forth। আমি এমন ভাষাগুলি সন্ধান করতে শুরু করি যা এখনও হয়নি। ইতিমধ্যে এটি এখানে দেখে খুশি।
mbomb007

2
এছাড়াও, আপনি যদি কখনও +1675 এ যান তবে আমি আউটপুট করার জন্য একটি দুর্দান্ত ASCII চিত্র পেয়েছি। : ডি
mbomb007

31

Pyth

আরও স্নিপেটগুলির জন্য, আমি গল্ফ চ্যালেঞ্জগুলির সমাধান এবং সমস্যার লিঙ্ক পোস্ট করব।

দৈর্ঘ্য 17:

<ussC,cG\_GUQ*zQQ

nচিরতরে ইনপুট স্ট্রিং পুনরাবৃত্তি করে গঠিত অসীম সিকোয়েন্সের প্রথম অক্ষরগুলি সন্ধান করুন, তারপরে ক্রম নিজেই এর আন্ডারস্কোরগুলিতে পূরণ করুন, তারপরে চিরতরে পুনরাবৃত্তি করুন।

শুন্যস্তান পূরণ

দৈর্ঘ্য 14:

#QX=Qhf>FT.:Q2

অনন্য উপাদানের একটি তালিকা দেওয়া হয়েছে, প্রতিবেশী উপাদানগুলির জোড়া অদলবদল করে সমস্ত মধ্যবর্তী ফলাফল মুদ্রণ করে তালিকাটি সাজান।

সংখ্যার একটি সেটকে ক্রমে পুনরায় সাজানো

দৈর্ঘ্য 13:

?hu]+HG_UQYQY

নিম্নলিখিত গঠন তৈরি করুন: [0, [1, [2, [3]]]]

তালিকাগুলির ব্যাপ্তি

দৈর্ঘ্য 12:

uxyG*HQjvz2Z

এক্সওআর গুণ

এক্সওআর গুণ

দৈর্ঘ্য 11:

lfqSzST.:wz

প্রথম শব্দের কতগুলি সাবস্ট্রিংগুলি দ্বিতীয় শব্দের অ্যানাগ্রামগুলি গণনা করুন।

প্যারেন্ট স্ট্রিংয়ের মধ্যে অ্যানাগ্রামগুলি সনাক্ত করা

দৈর্ঘ্য 9:

fqJjQT_J2

ইনপুটটি প্যালিনড্রোমে সর্বনিম্ন বেসটি সন্ধান করুন।

সর্বনিম্ন-বেস প্যালিনড্রোম

দৈর্ঘ্য 5:

!%lQ1

ইনপুটটি ২ এর পাওয়ার কিনা কিনা তা পরীক্ষা করুন the লগ বেসটি 2 নিন, ফলাফলটি মোড 1 নিন এবং লজিকালটি নেবেন না।

+, - অপারেশন ব্যবহার না করে কোনও পূর্ণসংখ্যা 2 এর শক্তি কিনা তা পরীক্ষা করুন

দৈর্ঘ্য 4:

sjQ2

ইনপুটটির বেস 2 উপস্থাপনা যোগ করে ইনপুটটির হামিং ওজন গণনা করে।

স্বাক্ষরবিহীন 16 বিট পূর্ণসংখ্যায় একের সংখ্যা গণনা করুন

দৈর্ঘ্য 3:

^G2

^ ক্রম অনুসারে, int, প্রথম যুক্তির কার্তেসিয়ান পণ্যকে এন বারের সাথে দেয়, যেখানে এন দ্বিতীয় যুক্তি।

এই ক্ষেত্রে, যেহেতু Gবর্ণমালা ( abcdefghijklmnopqrstuvwxyz), ^G2সব 2 চিঠি স্ট্রিং দেয়, aaমাধ্যমে zz

দৈর্ঘ্য 2:

lT

lসাধারণভাবে হিসাবে পরিবেশন করার সময় len()লগ বেস 2 হিসাবেও ব্যবহার করা যেতে পারে, যেহেতু Tভেরিয়েবলটি আরম্ভ করা হয় 10, 3.321928094887362610 এর 2 লগ লগটি প্রিন্ট করে ।

দৈর্ঘ্য 1:

H

Hপাইথের খালি অভিধান (হ্যাশ-টেবিল), এবং পাইথের অভিধান পাওয়ার একমাত্র উপায়, ব্যবহারের সংক্ষিপ্ততা v(ইভাল) বা $(পাইথন আক্ষরিক)।

Factoid:

পাইথের আক্ষরিক ব্যতীত কোনও মাল্টি-ক্যারেক্টার কনস্ট্রাক্ট নেই। এছাড়াও পাইথ মূলত পাইথনকে এক থেকে এক করে সংকলন করে।


আপনার কমান্ডগুলি শুরু করার আগে আপনার ফ্যাকটিড যুক্ত হয়েছিল .?
লিকি নুন

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