পোস্টস্ক্রিপ্টে গল্ফ করার জন্য টিপস?


14

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


পাওয়া কিছু বহিরাগত পৃষ্ঠাসমূহ: sites.google.com/site/codegolfingtips/Postscript
luser droog

উত্তর:


3

এম্বেডড ডিকোডার

একটি পোস্ট স্ক্রিপ্ট প্রোগ্রামের নিজস্ব প্রোগ্রাম পাঠ্যটি ডেটা হিসাবে পড়ার একটি অনন্য (?) ক্ষমতা রয়েছে। এটি সাধারণতঃ দ্বারা ব্যবহৃত হয় imageঅপারেটর যা পায় ডেটা-অধিগ্রহণ-প্রক্রিয়া ইনপুট হিসাবে, এবং এই পদ্ধতি প্রায়ই ব্যবহার currentfileদ্বারা অনুসরণ readline, readstringবা readhexstring। তবে অন্যভাবে দেখা গেছে, imageএটি অন্য লুপিং অপারেটর, যাতে কোনও লুপটি পড়তে পারে - এগিয়ে । গ্রিন বুকের লাইন-প্রিন্টার এমুলেটর একটি উদাহরণ।

tokenঅপারেটরটি ব্যবহার করে কোনও ফাইল বা স্ট্রিংয়ে স্ক্যানারকে ডেকে একটি নম্বর বা স্পেস- (অথবা অন্যথায়-: অন্য উত্তর দেখুন) - সীমাবদ্ধ নাম।

পিএসে একটি সাধারণ পিএস দোভাষী:

{currentfile token not {exit} if dup type /arraytype ne {exec} if }loop

বাইনারি অপারেটর স্ট্রিং ডিকোডার

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

/.{
    <920>  % two-byte binary-encoded name template with 0x92 prefix
    dup 1 4 3 roll put  % insert number into string
    cvx exec  % and execute it
}def
/${
    //.   %the /. procedure body defined above
    73 .  %"forall" (by code number)
}def

.কার্যপ্রণালী স্ট্যাক এবং একটি দুই বাইট স্ট্রিং দ্বিতীয় বাইট যেমন টিপে থেকে একটি নম্বরে লাগে, প্রথম বাইট একটি বাইনারি টোকেন প্রিফিক্স-বাইট, একটি এক্সিকিউটেবল সিস্টেমের নামের উল্লেখ হচ্ছে। আমরা স্ক্যানারের একটি বিধি ব্যবহার করে হেক্সস্ট্রিংয়ে একটি বাইট সংরক্ষণ করি যে হেক্সস্ট্রিংয়ের মধ্যে একটি বিজোড় সংখ্যক স্তনবৃন্ত অতিরিক্ত 0 স্তনবৃন্ত সহ প্যাড করা হয়, সুতরাং 3 হেক্স নিবলগুলি 2-বাইট স্ট্রিং উত্পাদন করে। স্ট্রিংটি তখন এক্সিকিউটেবল হিসাবে চিহ্নিত হয় এবং ডাকা হয় execযার সাহায্যে স্ক্যানারকে ডাকে, পছন্দসই এক্সিকিউটেবল সিস্টেমের নাম উত্পন্ন করে এবং তারপরে নামটি লোড করে এবং অপারেটরকে কার্যকর করে। $স্ট্যাক একটি স্ট্রিং প্রতিটি বাইট উপর এই আছে ব্যবহার .পদ্ধতি দুইবার , একবার লুপ শরীরের হিসাবে, এবং তারপর লুপিং অপারেটর চালানো forallসংখ্যা দ্বারা।

আরও সংক্ষিপ্তভাবে, এই পদ্ধতিগুলি দেখতে এইরকম:

 /.{<920>dup 1 4 3 roll put cvx exec}def/${//. 73 .}def
%123457890123456789012345678901234567890123456789012345
%        1         2         3         4         5

সুতরাং, 55 অক্ষর বাইনারি টোকেন স্ট্রিং কিনে। অথবা, 6 (হয়তো 7, যদি আপনি এটি একটি স্পেস দিয়ে বিনষ্ট) অক্ষর, আপনি লোড করতে পারেন জন্য জি গ্রন্থাগার সঙ্গে (G)runযা সংজ্ঞায়িত .এবং $উপরে হিসাবে (অন্য কয়েকজন + ASCII-পৌঁছানো কোডের পরিসর প্রসারিত করতে)।

আমার ক্রসওয়ার্ড ধাঁধা উত্তর আরও সচিত্র ।


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

2

গ্রাফিকাল আউটপুট এবং কনসোল আউটপুট উত্পন্ন =করার সময় , এর পরিবর্তে ব্যবহার করুন pop


2

ASCII85 এর সাথে হেক্সস্ট্রিংগুলি প্রতিস্থাপন করুন

সম্ভবত পুরানো খবর, তবে আমি এটি কেবল শিখেছি। :)

আপনি কোনও এনকোডিং ফিল্টার এবং কাট-পেস্টের সাথে ইন্টারস্কিভ করে পোস্টস্ক্রিপ্ট ইন্টারপ্রেটার ব্যবহার করে এটি করতে পারেন। তবে আমি কীভাবে dcএটি "হাত দ্বারা" করতে ব্যবহার করব তা দেখাতে যাচ্ছি ।

সুতরাং, এখানে একটি হেক্স স্ট্রিং। আমরা এটিকে 4-বাইট খণ্ডে বিভক্ত করেছি।

95 20 6e d8   d0 59 49 35   50 74 ba c5   08 2d

ডিসি ফায়ার করে, আমরা এগুলি 32-বিট (স্বাক্ষরযুক্ত) বিগ-এন্ডিয়ান-বাইট-অর্ডার নম্বর হিসাবে ইনপুট করি। তারপরে মোড- অফ বেস -৮৫ ডিজিট (আপনার 0 পর্যন্ত না হওয়া পর্যন্ত 5 হওয়া উচিত)।

0> ডিসি
16 আমি
95206ED8
অয়
d85% n85 /
82
d85% n85 /
83
d85% n85 /
82
d85% n85 /
78
d85% n85 /
47
d85% n85 /
0                    

সর্বশেষ অংশটি প্যাডিং সহ 00 00, ফলন (দশমিক), একই পরিমাণ বাইট বাদ দিয়ে যে আমরা প্যাড করেছি।

47 78 82 83 82   66 81 72 79 83   25 72 82 25 69  2 53 30 [2 53]

ASCII এবং poof এর মুদ্রণযোগ্য পরিসরে স্থানান্তর করতে 33 যুক্ত করুন! ASCII85।

80 111 115 116 115 99 114 105 112 116 58 105 115 58 102 35 86 63
যা ডিকোড করে: পোস্টস্ক্রিপ্ট: এটি: এফ # ভি? %%% ওহো! 'মজা' বলতে হবে! আমি কোথাও স্ক্রু আপ। :)

এটিকে মোড়ানো <~... ~>, এবং স্তর -2 পোস্টস্ক্রিপ্ট হেক্সের চেয়ে সস্তা, 8-বিট ডেটা অ্যাক্সেস করতে পারে।


2

এখানে একটি চটজলদি রয়েছে: [...>>beginমূল শব্দটি মুছে ফেলার জন্য একাধিক সংজ্ঞাটি মোড়ানো def(এনবি। [এর মতোই <<))

 def def
[>>begin

সুতরাং মনে রাখবেন: আরও বেশিতিনদু'জন ... একসাথে পাল ! ;)


নিয়মটি "দু'জনের বেশি" হওয়া উচিত নয়? /a 1 def/b 2 def/c 3 defসঙ্গে তুলনা করুন <</a 1/b 2/c 3>>begin। আমাদের ডিএফ এর জন্য আরও স্পেস দরকার।
টমাস ডাব্লু।

কি দারুন. আমি যদিও এটি ছিল না। হ্যাঁ, গণনার উন্নতি প্রয়োজন।
লুসার droog

প্রকৃতপক্ষে, এটি হওয়া উচিত[/a 1/b 2/c 3>>begin
টমাস ডব্লিউ।

সামনা করতল। । । ।
লুসার droog

1
আপনি যদি স্ব-সীমাবদ্ধ টোকেনে শেষ হয়ে এমন কোনও নামকরণ করে থাকেন তবে এটি প্রয়োগ নাও হতে পারে। ইন /a{pop 2 mul}defবা \b[2 3]def, defমাত্র 3 অক্ষর, না 4. খরচ
AJMansfield

2

যদিও বেশির ভাগ PostScript অপারেটার চিহ্নগুলি সিন্টেক্সের শনাক্তকারী (এবং SPACE- (অথবা otherwise- হতে হবে) সীমায়িত), নাম [, ], <<, এবং >>স্ব-delimiting হয় এবং স্ক্যানার স্থান হস্তক্ষেপ ছাড়াই সনাক্ত করে। একই কারণে, আপনি এই নামগুলি স্বাভাবিক /literalবাক্য গঠন (যেমন /[দুটি টোকেন: খালি আক্ষরিক নাম সমতুল্য ()cvn cvlit, এবং এক্সিকিউটেবল নামের [সমতুল্য ([)cvn cvx exec) দিয়ে উল্লেখ করতে পারবেন না ।

এই নামগুলি, যা নাম দ্বারা উল্লেখ করা যায় না, পুনরায় সংজ্ঞায়িত করতে আমরা একটি স্ট্রিং ব্যবহার করতে পারি যা অভিধানে কী হিসাবে ব্যবহৃত হয় (সুবিধাজনক!) যখন স্পষ্টতই নামগুলিতে রূপান্তরিত হয়।

এই উদাহরণটি এই অপারেটরগুলিকে পাটিগণিত সম্পাদনের জন্য গালি দেওয়া চিত্রিত করে।

%!
([)0 def
(])1 def
(<<){add}def
(>>){mul}def
 ]]<<]]]<<<<>> =
%1 1 add 1 1 1 add add mul = %prints 6

এছাড়াও <<এবং [(এবং mark) সমস্ত একই জিনিস বোঝায়।


আমার নিজস্ব পোস্টস্ক্রিপ্ট ইন্টারপ্রেটার, এক্সপোস্ট , কিছু বাঁধা দিয়ে ডান-কোঁকড়ানো বন্ধনী উপলব্ধ করে। আলোচনা


2
এছাড়াও, /পূর্বের টোকেনটি শেষ হয় যাতে এর আগে আপনার কোনও জায়গার প্রয়োজন হয় না।
জিফ রেডি

1

দীর্ঘ অপারেটরের নামগুলির ফ্যাক্টর আউট পুনরাবৃত্তি ব্যবহার

আপনি যদি ইতিমধ্যে একটি <<>>beginঅভিধান ব্যবহার করছেন তবে /?{}পুনরায় সংজ্ঞা অনুসারে 4 টি অক্ষরের একটি ধ্রুবক ওভারহেড রয়েছে । সুতরাং দৈর্ঘ্য n এর পুনরাবৃত্তি হওয়া N এর অপারেটর
(4 + এন ) - ( এন * ( এন - 1)) এর একটি অক্ষর-গণনা পরিবর্তন আনবে ।

এই সূত্রটিকে 0 এর সমান স্থির করা বিরতি- সমান পয়েন্টের সমীকরণ দেয় । এর থেকে আমরা প্রতিটি পরিবর্তকের জন্য অন্যের ক্ষেত্রে সমাধান করতে পারি,
এন = - ( এন - 4) / (1 - এন ) এবং
এন = (4 + এন ) / ( এন - 1) প্রদান করে ing

না আমরা এই জাতীয় প্রশ্নের উত্তর দিতে পারি না, "'মুদ্রণ' এর কতগুলি ব্যবহারের জন্য সংক্ষেপণ করা সার্থক?" এন = 5, সুতরাং এন = 9/4। সিলিংটি নিন, যেহেতু আপনি কার্যকরভাবে 1/4 বার মুদ্রণ কল করতে পারবেন না। সুতরাং, 3. 3 ব্যবহার। এবং প্রকৃতপক্ষে,

print print print
/P{print}p p p

(ধরে নিলাম আপনি <<>>beginঅবশ্যই সংজ্ঞাটি সক্রিয় করতে ওভারহেড প্রদান করেছেন )।

অবশ্যই, বাইনারি টোকেনগুলি এই জাতীয় শব্দটিকে তৈরি করে, আপনাকে সিস্টেমের নাম টেবিল থেকে 2-বাইট: 0 x92, 0x হিসাবে প্রথম 255 নাম দেয় ?? এবং বাইনারি টোকেনগুলি স্ব-সীমাবদ্ধও হয়, এর আগে বা পরে কোনও শ্বেত স্পেসের প্রয়োজন হয় না, কারণ প্রথম বাইটের উচ্চ-বিট অ্যাস্কি সীমার বাইরে থাকে।


1

বাইনারি টোকেন

কোনও পোস্টস্ক্রিপ্ট প্রোগ্রামের চূড়ান্ত জিপ-আপের জন্য যে চূড়ান্ত সীমানাটি বাইনারি টোকেন যা আপনাকে আর এএসসিআইআই-ক্লিন প্রোগ্রাম না করে ব্যয় করে দীর্ঘ অপারেটরের নামগুলি পুরোপুরি সরিয়ে ফেলতে দেয়।

সুতরাং পোস্টস্ক্রিপ্ট কোড একটি সংক্ষিপ্ত ব্লক দিয়ে শুরু

[/T[70{R 0 rlineto}48{}49{}43{A rotate}45{A neg rotate}91{currentdict
end[/.[currentpoint matrix currentmatrix]cvx>>begin begin}93{. setmatrix
moveto currentdict end end begin}>>/S{dup B eq{T begin exch{load exec}forall
end}{exch{load exch 1 add S}forall}ifelse 1 sub }>>begin moveto 0 S stroke

আমরা পিএলআরএম এর পিছনে সমস্ত নাম সন্ধান করি (পরিশিষ্ট এফ, পিপি। 795-797)

appearance
in
vim    dec  meaning

<92>   146  'executable system name' binary token prefix
^A     1    add
^M     13   begin
^^     30   currentdict
'      39   currentmatrix
(      40   currentpoint
2      50   cvx
8      56   dup
9      57   end
=      61   eq  !)
>      62   exch
?      63   exec
I      73   forall
U      85   ifelse
d      100  load
h      104  matrix
k      107  moveto
n      110  neg
<85>   133  rlineto
<88>   136  rotate
§      167 stroke
©      169 sub

এবং তারপরে এগুলি 146(দশমিক) বাইট দ্বারা উপসর্গযুক্ত টাইপ করুন । স্বেচ্ছাসেবী বাইট প্রবেশের জন্য সহায়তা vim

তারপরে ভিমে, কনডেন্সযুক্ত ফাইলটি সরাসরি টাইপ করা যায়, তাই:

[/ টি [70 {আর 0 ^V146 ^V133} 48 {} 49 {} 43 {এ ^V146 ^V136} 45 {এ ^V146 ^V110 ^V146 ^V136} 91 { ^V146 ^V30 ^V146 ^V57 [/। [ ^V146 ^V40 ^V146 ^V104 ^V146 ^V39] ^V146 ^V50 >> ^V146 ^V13 ^V146 ^V13} 93 {। ^V146 ^V156 ^V146 ^V107 ^V146 ^V30 ^V 146 ^V57 ^V146 ^V57 ^V146 ^V13} >> / এস { ^V146 ^V56 বি ^V146 ^V61 {টি ^V146 ^V13 ^V146 ^V62 { ^V146 ^V100 ^V146 ^V63}^V146 ^V73 ^V146 ^V57} { ^V146 ^V62 { ^V146 ^V100 ^V146 ^V62

... ^V-62 শেষ করতে এবং 1 টি শুরু করতে আপনাকে এখানে একটি স্থান প্রবেশ করতে হবে তবে আপনি ব্যাক আপ নিতে পারেন এবং এটি পরে মুছতে পারেন ...

1 ^V146 1 ^Vএস} ^V146 ^V73} ^V146 ^V85

... ^V-85 টি শেষ করতে এবং 1 টি শুরু করতে এখানে একটি স্থান প্রবেশ করতে হবে তবে আপনি ব্যাক আপ নিতে পারেন এবং এটি পরে মুছতে পারেন ...

1 ^V146 ^V169} >> ^V146 ^V13 ^V146 ^V107

... 3-সংখ্যার কোডের তৃতীয় অঙ্কটি বাইট-এন্ট্রি সমাপ্ত করে তাই 0এখানে নীচে সাধারণ, সুবিধামত ...

0 এস ^V146 ^V167

যা স্ক্রিনে এর মতো দেখাবে (ভিমে):

[/T[70{R 0<92><85>}48{}49{}43{A<92><88>}45{A<92>n<92><88>}
91{<92>^^<92>9[/.[<92>(<92>h<92>']<92>2>>
<92>^M<92>^M}93{.<92><9c><92>k<92>^^<92>9<92>9<92>^M}
>>/S{<92>8B<92>={T<92>^M<92>>{<92>d<92>?}<92>I<92>9}{<92>>
{<92>d<92>>1<92>^AS}<92>I}<92>U1<92>©}>><92>^M
<92>k0 S<92>§

উদ্দেশ্যটি কেবল কোনও ছবি দেখানো হলে এটি প্রায়শই সম্পূর্ণ বাদ দেওয়া যায়। ঘোস্টস্ক্রিপ্ট বেশিরভাগ জিনিসই প্রয়োজন ছাড়াই স্ক্রিনে চিত্রিত করে showpage

¡    161   showpage

[ এটি আসলে কাজ করছে না। ঘোস্টস্ক্রিপ্ট আমাকে undefinedএবং syntaxerrorএই টোকেনগুলির জন্য দিচ্ছে । সম্ভবত আমার কিছু মোড সক্ষম করতে হবে। ]


সম্ভবত এটি এই প্রোগ্রাম সম্পর্কে কিছু । অনলাইন compactor এটা পছন্দ করেন না, হয়।
লুসার droog

1

নেতিবাচক রোলগুলি ইতিবাচক করুন Change

নেতিবাচক রোলগুলি সর্বদা ইতিবাচক রোলগুলিতে পরিবর্তিত হতে পারে

3 -1 roll
3 2 roll

5 -2 roll
5 3 roll

কোনটি বেশি দক্ষ 3 -1 rollবা 3 2 roll? আমার মানসিক মডেলটিতে প্রাক্তনটির আরও দক্ষ হওয়া উচিত কারণ এটি কেবল একটি পদক্ষেপ নেয়। আমার মানসিক মডেলটি কি সঠিক?
আমার বগলে চুম্বন

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

1
সোর্স ফাইলটি আমার শেষ মন্তব্যের পরে সরানো হয়েছে। এখানে আমার বাস্তবায়নের এর এর rollঅপারেটর।
লুসার droog

0

আমার জি লাইব্রেরি ব্যবহার করুন

https://github.com/luser-dr00g/G

এটি একটি পাঠ্য ফাইল। এটি সংক্ষিপ্ততম সিনট্যাক্স লোড করার জন্য কোনও এক্সটেনশন নেই।

এটি এই 203-চর সিয়েরপিংক্সি ত্রিভুজ প্রোগ্রামটির অনুমতি দেয়

[48(0-1+0+1-0)49(11)43(+)45(-)/s{dup
0 eq{exch{[48{1 0 rlineto}49 1 index
43{240 rotate}45{120 rotate}>>exch
get exec}forall}{exch{load
exch 1 sub s}forall}ifelse 1 add}>>begin
9 9 moveto(0-1-1)9 s fill

151 বাইট হিসাবে নতুন করে লিখতে হবে

3(G)run $
{A - B + A + B - A}
{B B}

{A - B - B}7{[ex{du w{(>K?\2u)$}if}fora]}rep
cvx[/A{3 0 rl}/B 1 in/-{120 rot}/+{-120 rot}>>b
100 200(k?B9)$ showp

মন্তব্য সঙ্গে workfile

সংক্ষিপ্ত সিস্টেমের নাম বৈশিষ্ট্য ব্যবহার করে, 1(G)run দীর্ঘ অপারেটর নামের বোঝা পুরোপুরি সরিয়ে দেয়। অপারেটরের নামটি অন্যদের থেকে আলাদা করার জন্য কেবল যথেষ্ট দীর্ঘ প্রয়োজন।

সুতরাং

  • add হয়ে ad
  • mul হয়ে mu
  • index হয়ে i
  • ইত্যাদি, ইত্যাদি

পিএলআরএম ব্যবহার করুন অপারেটর নামের মান টেবিল সম্বন্ধে জানতে পরিশিষ্ট F।

সংক্ষিপ্ত নামগুলি নির্বাচন না করা হলেও অপারেটর স্ট্রিংসের বৈশিষ্ট্য উপলব্ধ। খালি লাইব্রেরিতে একটি "বেস স্তর" নির্বাচন করা হয়েছে সহজভাবে যোগ করে(G)run কোনও সাজসজ্জা ছাড়াই ।

বেস স্তরে একটি নতুন ফাংশন অন্তর্ভুক্ত .যা অপারেটরের জন্য পূর্ণসংখ্যা কোড গ্রহণ করে (উপরে উল্লিখিত একই পরিশিষ্ট এফ) এবং এটি কার্যকর করে।

নতুন ফাংশনটি $একটি স্ট্রিংয়ের মাধ্যমে পুনরাবৃত্তি করে এবং .প্রতিটিকে ডাকে । সুতরাং আসকি কোডটি সরাসরি নম্বর দ্বারা অপারেটর নির্বাচন করে।

একটি নতুন ফাংশন @আপনাকে স্পেস অক্ষর (Ascii 0x20) 0 হিসাবে বিবেচনা করে পরিশিষ্ট এফের টেবিলের নীচে পৌঁছাতে দেয়।

একটি নতুন ফাংশন #আপনাকে প্রথমে 95 (0x5F) যোগ করে টেবিলের আরও উপরে পৌঁছাতে দেয় যাতে স্পেস চর 0x20 কে 127 (0x7F) হিসাবে গণ্য করা হয়, শেষ প্রিন্টযোগ্য ~আসকি অক্ষর 126 (0x7E) এর পরের কোড code

দুটি নতুন ফাংশন !আপনাকে অনেকগুলি (এবং ) অপারেটরের ক্লান্তিকর ভাবের পরিবর্তে অ্যারে এবং / অথবা সূচকগুলি / কীগুলির সূচক অ্যারের সাহায্যে ডিক্টসের গভীরভাবে বাসাতে কাঠামো অ্যাক্সেস করতে দেয় ।getput

(G)run 7 টি অক্ষর বেস-স্তরটি কিনে।

1(G)run 8 টি অক্ষর এটি ক্রয় করে এবং সংক্ষিপ্ত সিস্টেমের নাম।

3(G)run $9 টি অক্ষর অবিলম্বে একটি অন্তর্নিহিত-পদ্ধতি ব্লক শুরু করে পরবর্তী ফাঁকা রেখা পর্যন্ত স্ক্যানিং উত্সের লাইনগুলি শুরু করে এবং প্রথম লাইনটিকে একটি পদ্ধতি হিসাবে ডাকা Aহিসাবে চিহ্নিত করে, পরবর্তী লাইনটি একটি প্রক্রিয়া হিসাবে সংজ্ঞায়িত করা হয় B, ইত্যাদি। এটি defসংজ্ঞায়নের জন্য প্রয়োজনীয় বেশিরভাগ অপসারণ করা উচিত এগুলি অভিধানে মোড়ানোর প্রয়োজন ছাড়াই প্রচুর স্টাফ, এমনকি স্পষ্টভাবে তাদের নাম না দেওয়া।

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