জে, 87 79 72 70 67 57 56 টি অক্ষর
'( ) 'charsub|.|:(+/\@('('&=-')'&=)(],~' '$~[)"0])1!:1[1
কীবোর্ড থেকে ইনপুট নেয়। উদাহরণ:
'( ) 'charsub|.|:(+/\@('('&=-')'&=)(],~' '$~[)"0])1!:1[1
((1 2)(3 (4 5) moo)) (i (lik(cherries)e (woohoo)))
4 5 cherries woohoo
1 2 3 moo lik e
i
ব্যাখ্যা:
এই ব্যাখ্যাটি আমার প্রোগ্রামের প্রথম সংস্করণের উপর ভিত্তি করে:
|.|:('( ) 'charsub x)((' '$~{.@]),[{~{:@])"1(('('&([:+/=)-')'&([:+/=))\,.i.@#)x=.1!:1[1
x=.1!:1[1
কীবোর্ড থেকে ইনপুট নিন এবং এটি x
পরে রাখুন
(('('&([:+/=)-')'&([:+/=))\,.i.@#)
ক্রিয়াটির ফলাফলের সাথে স্ট্রিং ( i.@#
) এবং সেলাই ( ,.
) এ সমস্ত অশ্লীলতার একটি তালিকা তৈরি করে (('('&([:+/=)-')'&([:+/=))\
।
(('('&([:+/=)-')'&([:+/=))\
এই ক্রিয়া সব স্ট্রিংয়ের উপসর্গ প্রয়োগ করা হয় (তাই ইনপুটের hello
এটি প্রয়োগ হবে h
, he
, hel
, hell
, এবং hello
। এটা একটা হয় কাঁটাচামচ , যা খোলা বন্ধনী সংখ্যা গণনা ('('&([:+/=)
এবং তারপর ঘনিষ্ঠ বন্ধনী সংখ্যা subtracts ')'&([:+/=)
। এটি আমার তালিকা দেয় স্ট্রিং এবং লেভেলের সেই সূচকের অক্ষরটি আউটপুটে থাকা উচিত simple সাধারণ ইনপুটটিতে এটি আমাকে নিম্নলিখিত দেয়:
(('('&([:+/=)-')'&([:+/=))\,.i.@#)x=.1!:1[1
(one(two(three)))
1 0
1 1
1 2
1 3
2 4
2 5
2 6
2 7
3 8
3 9
3 10
3 11
3 12
3 13
2 14
1 15
0 16
((' '$~{.@]),[{~{:@])"1
এটি এমন একটি ক্রিয়া যা আমার সবেমাত্র তৈরি করা তালিকা এবং আউটপুটও গ্রহণ করে ('( ) 'charsub x)
(যা কেবলমাত্র একটি স্ট্রিং প্রতিস্থাপনের জন্য সমস্ত বন্ধনীকে ফাঁকা স্থান সহ প্রতিস্থাপন করে x
)। এটি তালিকার প্রতিটি আইটেমের লেজ নেয় {:@]
এবং অক্ষরটি পেতে স্ট্রিংয়ের সূচক হিসাবে এটি ব্যবহার করে [{~{:@]
। তারপরে এটি ,
তালিকার প্রতিটি আইটেমের মাথা দ্বারা নির্দেশিত স্থানগুলির সংখ্যা সহ এটি উপসর্গ করে (' '$~{.@])
। পূর্ববর্তী উদাহরণে এটি আমাকে দেয়:
('( ) 'charsub x)((' '$~{.@]),[{~{:@])"1(('('&([:+/=)-')'&([:+/=))\,.i.@#)x=.1!:1[1
(one(two(three)))
o
n
e
t
w
o
t
h
r
e
e
আমি তারপরে অ্যারে স্থানান্তর করি |:
এবং |.
পছন্দসই আউটপুট পেতে এটি বিপরীত করি ।
((1 2))))))))))3
নেতিবাচক উচ্চতা নিষিদ্ধ থাকলে ইনপুটটি অবৈধ হওয়া উচিত।