অদ্ভুত ভাষার বৈশিষ্ট্য


974

আপনার মতে সবচেয়ে অবাক, অদ্ভুত, আজব বা সত্যই "ডাব্লুটিএফ" ভাষার বৈশিষ্ট্যটি আপনি কীভাবে মুখোমুখি হয়েছিলেন?

অনুগ্রহ করে প্রতি উত্তরে কেবল একটি বৈশিষ্ট্য।


5
@ গ্যাবলিন আমার মনে হয় আপনি যদি জাভা স্ক্রিপ্ট পার্সিং ব্যবহার করে পিআরএল রেজেক্সের সাথে এলআইএসপি প্রেরককে একত্রিত করেন তবে আপনি ডাব্লুটিএফ এর 90% অংশ জুড়ে দিতে পারবেন ...
তালভি ওয়াটিয়া

উত্তর:


1859

সি-তে, অ্যারেগুলি এভাবে সূচিযুক্ত করা যায়:

a[10]

যা খুব সাধারণ।

তবে, কম পরিচিত ফর্মটি (যা সত্যই কাজ করে!) হ'ল:

10[a]

যার অর্থ উপরের মত


758
এর কারণ একটি [10] এর অর্থ * (a + 10) ... এবং 10 [এ] এর অর্থ * (10 + এ) :)
মিশেল গোকন

77
"হ্যালো ওয়ার্ল্ড" ভুলে যাবেন না [i]। অথবা আমি ["হ্যালো ওয়ার্ল্ড"]
রিচার্ড পেনিংটন

167
অথবা, আরও দরকারীভাবে, "0123456789abcdef" [x & 0xf]
ডিপস্টিক

17
@ ফ্রুন্সি: এটি সর্বদা প্রত্যাশার মতো কাজ করে। পয়েন্টার সংযোজন ঠিকানায় সাধারণ পূর্ণসংখ্যার যোগের সমান নয়। প্রশ্ন আকারে আকারটি যাই হোক না কেন এটি পরিবর্তনশীল ।
আর মার্টিনহো ফার্নান্দেস

12
@mcv - a [10] "* (a + 10)" এর সমান, যেখানে "a + 10" এক্সপ্রেশনটি পয়েন্টার গাণিতিক (এবং যেহেতু একটি সংক্ষিপ্ত, উদাহরণস্বরূপ, একটি + 10 অর্থ 'শুরু হতে হবে) এ এর ঠিকানা এবং 10 শর্টস, অর্থাৎ 20 বাইটে সরান)। অভিব্যক্তি 10 [একটি] হিসেবে interepreted হয় "* (10 + একটি)", যেখানে "10 + একটি" হয় এছাড়াও পয়েন্টার এরিথমেটিক, এবং ঠিক একই ভাবে চিকিত্সা করা হয়।
এডান মাওর

1292

জাভাস্ক্রিপ্টে:

 '5' + 3 gives '53'

যেহেতু

 '5' - 3 gives 2

81
আমার মনে আছে আমি যখন প্রথম জাভাস্ক্রিপ্টটি স্ট্রিংয়ে সংখ্যা যুক্ত করার জন্য এই ধরণের কৌশলটি ব্যবহার করে শুরু করেছি: "111" - "222" 333 দেয় যখন "111" + "222" "111222" দেয়।
কলম রজার্স

112
+স্ট্রিং সংমিশ্রনের জন্য ভয়ঙ্কর
মাত্তেও রিভা

416
কনক্যাট সমস্যা না। দুর্বল টাইপিং হয়।
ফোগলবার্ড

270
@ ফোগলবার্ড কেউই সত্যিই সমস্যা নয়। এটি অসঙ্গত জবরদস্তির বিধিগুলির সাথে কেবল দুটির সংমিশ্রণ
টিএম

70
সুতরাং মূলত, যখন স্ট্রিং জড়িত থাকে তখন কনক্যাট হয়। তারা কেন '123456' - 456 = '123' এর মতো কিছু কোড করতে পারে না? এটি আকর্ষণীয় হবে।
জিমি লিন

872

জাভাস্ক্রিপ্টে, নিম্নলিখিত নির্মাণ

return
{
    id : 1234,
    title : 'Tony the Pony'
};

এরundefined পরে নতুন লাইনে লুক্কায়িত অন্তর্নিহিত সেমিকোলন সন্নিবেশের কারণে রিটার্নগুলি একটি বাক্য গঠন ত্রুটি return। নিম্নলিখিত হিসাবে আপনি আশা করবেন হিসাবে কাজ করে:

return {
    id : 1234,
    title : 'Tony the Pony'
};

আরও খারাপ, এটি এক হিসাবে কাজ করে (ক্রোমে অন্তত):

return /*
*/{
    id : 1234,
    title : 'Tony the Pony'
};

এখানে একই সমস্যার বৈকল্পিক যা একটি সিনট্যাক্স ত্রুটি দেয় না, কেবল নিঃশব্দে ব্যর্থ হয়:

return
    2 + 2;

225
সেমিকোলন সন্নিবেশ জাভাস্ক্রিপ্টের সবচেয়ে খারাপ অংশগুলির মধ্যে একটি।

230
আপনি যখন ব্যবহারকারী বৈশিষ্ট্যগুলি বেশিরভাগ বোকা হয়ে থাকবেন এই ধারণাটি নিয়ে আপনি ভাষা বৈশিষ্ট্যগুলি ডিজাইন করেন আপনি সর্বদা সমস্যার মধ্যে পড়ে যান।
রব ভ্যান ড্যাম

8
আমার আসলে এই সমস্যাটি ছিল, নিজে সি # বিকাশকারী হয়ে আমি ব্রেসটিকে নতুন লাইনে রেখেছি। সমস্যাটি কি তা বুঝতে কয়েক ঘন্টা সময় নিলেন। আমি যখন সমস্যার সমাধান করেছি তখনও আমি জানতাম না যে আপনার উত্তরটি না পড়া পর্যন্ত সমস্যাটি কী!
ফেডার হাজদু

24
নিক রেটাল্যাক: কারণ, জাভাস্ক্রিপ্টের সি-এর মতো কোঁকড়ানো বন্ধনী এবং অর্ধিকন সিনট্যাক্সের কারণে এটি নতুনভাবে উল্লেখযোগ্য তা মোটেই স্পষ্ট নয়।
তামাস সিজনেজে

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

795

জাভাস্ক্রিপ্ট সত্য টেবিল:

''        ==   '0'           // false
0         ==   ''            // true
0         ==   '0'           // true
false     ==   'false'       // false
false     ==   '0'           // true
false     ==   undefined     // false
false     ==   null          // false
null      ==   undefined     // true
" \t\r\n" ==   0             // true

সূত্র: ডগ ক্রকফোর্ড


237
জাভাস্ক্রিপ্টটিতে ভাল জিনিসটির === অপারেটর রয়েছে।
বেনামে

65
তাহলে ==ভাষা ডিজাইনারের দৃষ্টিতে কোন উদ্দেশ্যটি কাজ করে ?
ক্রিস এস

137
বিভ্রান্ত মানুষ।
জাভিয়ের

123
এটা চমৎকার যদি হতে চাই ==অর্থ ছিল ===, এবং তারপর আরেকটা অপারেটর, মত কিছু ছিল ~=যা অনুমোদিত জাভাস্ক্রিপ্টের এই মাতব্বরী।
টিএম

18
@ অটো আসলে, যেহেতু আমরা সন্ধান করছি, তার উদাহরণটি দেখায় যে == প্রতিসাম্য নয়। এই মুহুর্তে, আমি দেখিনি যে বাইনারি সম্পর্কের জন্য চলাচল কীভাবে নির্দিষ্ট করা হবে।
পিটারআলেন ওয়েলব

660

সি এবং সি ++ তে ত্রিগ্রাফগুলি।

int main() {
   printf("LOL??!");
}

এটি মুদ্রণ করবে LOL|, কারণ ট্রিগ্রাফ ??!রূপান্তরিত হয়েছে |


71
কুইক! সমস্ত সি / বি / প্রোগ্রামারদের বলুন!
এস্তেবান কাবার

235
ত্রিগ্রাফগুলি আশ্চর্যজনক, কারণ আপনি নিশ্চিত হতে পারেন যে কেউ কখনই করবে না - কি তা খুঁজে বের করবে না ??! ইতিমধ্যে নাম না জেনে গুগল থেকে বোঝানো হবে।
zaratustra

56
জিসিসিতে ডিফল্টরূপে ত্রিগ্রাফগুলি অক্ষম করা আছে।
সস্তানিন

360
এগুলি আপনাকে "ডাব্লুটিএফ অপারেটর" ব্যবহার করতে দেয়: (ফু ()! = ERROR) ??! ??! cerr << "ত্রুটি ঘটেছে" << এন্ডেল;
ব্যবহারকারী168715

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

573

জাভাতে অটো বক্সিং এবং পূর্ণসংখ্যার ক্যাশে সহ মজা করুন:

Integer foo = 1000;
Integer bar = 1000;

foo <= bar; // true
foo >= bar; // true
foo == bar; // false

//However, if the values of foo and bar are between 127 and -128 (inclusive)
//the behaviour changes:

Integer foo = 42;
Integer bar = 42;

foo <= bar; // true
foo >= bar; // true
foo == bar; // true

ব্যাখ্যা

জাভা উত্স কোডটিতে একটি দ্রুত উঁকি দেওয়া নীচের বিষয়গুলি আপ করবে:

/**
 * Returns a <tt>Integer</tt> instance representing the specified
 * <tt>int</tt> value.
 * If a new <tt>Integer</tt> instance is not required, this method
 * should generally be used in preference to the constructor
 * {@link #Integer(int)}, as this method is likely to yield
 * significantly better space and time performance by caching
 * frequently requested values.
 *
 * @param  i an <code>int</code> value.
 * @return a <tt>Integer</tt> instance representing <tt>i</tt>.
 * @since  1.5
 */
public static Integer valueOf(int i) {
    if (i >= -128 && i <= IntegerCache.high)
        return IntegerCache.cache[i + 128];
    else
        return new Integer(i);
}

দ্রষ্টব্য: কোনও সম্পত্তি দ্বারা সেট না IntegerCache.highকরা 127পর্যন্ত ডিফল্ট ।

অটো বক্সিংয়ের সাথে যা ঘটে তা হ'ল ফু এবং বার উভয়ই একই সংখ্যক বস্তুটি ক্যাশে থেকে পুনরুদ্ধার করা ব্যতীত স্পষ্টভাবে তৈরি করা হয়: উদাহরণস্বরূপ foo = new Integer(42), রেফারেন্সের সমতার তুলনা করার সময় এগুলি মিথ্যা নয় বরং সত্য হবে। পূর্ণসংখ্যার মানের তুলনা করার সঠিক উপায়টি ব্যবহার করা হচ্ছে.equals;


31
আমাকে কয়েক সেকেন্ড সময় নিয়েছিল কেন ... জাভা অবশ্যই -128 এবং 128 এর মধ্যে মানের জন্য পূর্ণসংখ্যার উদাহরণগুলির একটি পুল রাখতে হবে, অন্যথায় এটি একটি নতুন পূর্ণসংখ্যার বরাদ্দ করে, তাই না?
মাইক Akers 20

18
তবে মনে রাখবেন যে আপনি যদি নতুন পূর্ণসংখ্যা (42) নির্দিষ্ট করে থাকেন তবে এটি পুল থেকে উদাহরণটি ব্যবহার করবে না তাই foo == বারটি মিথ্যা হিসাবে মূল্যায়ন করবে
z -

10
আমি যদি সম্ভব হয় তবে সর্বদা পূর্ণসংখ্যার পরিবর্তে ইনট ব্যবহার করি, তবে যদি আমাকে কোনও কারণে পূর্ণসংখ্যার ব্যবহার করতে হয় তবে আমি কি কেবল == এর পরিবর্তে .equals () ব্যবহার করব?
ম্যাট্রিক্সফ্রোগ

246
আমি একজন সি # প্রোগ্রামার খুব খুশি।

87
@ উইল: সি # এর কিছু খুব মিল রয়েছে cha দেখুন blogs.msdn.com/jmstall/archive/2005/03/06/386064.aspx
spookylukey

373

নীল ফ্রেজারের উদ্ধৃতি (সেই পৃষ্ঠার শেষে দেখুন),

try {
    return true;
} finally {
    return false;
}

(জাভাতে, তবে আচরণটি সম্ভবত জাভাস্ক্রিপ্ট এবং পাইথনের ক্ষেত্রে একই রকম)। ফলাফলটি পাঠকের কাছে অনুশীলন হিসাবে ছেড়ে গেছে।

সম্পাদিত: যতক্ষণ আমরা বিষয়টিতে আছি ততক্ষণ এটিকেও বিবেচনা করুন:

try {
    throw new AssertionError();
} finally {
    return false;
}

42
+1 টি। কিছু কারণে, আমি এই হাসিখুশি মনে করি এবং জিগ্লিং বন্ধ করতে পারি না।
আগে

153
শুকরিয়া সি # এরকম উন্মাদনাকে অনুমতি দেয় না ...Control cannot leave the body of a finally clause
রিচার্ড ইভ

64
এই প্রত্যাবর্তন, মিথ্যা, এটা না? এটি ডাব্লুটিএফের মতো দেখতে (এবং সম্ভবত এটি এক), তবে আমি নিয়ম অনুসারে বেঁচে থাকি: অবশেষে সর্বদা জয়ী হয়, যদি না আপনি আগে মেশিনটি ক্রাশ করেন।
মাইকেল Stum

28
: পরিষ্কার করা, আমি মনে যে অবশেষে সবসময় জেতে যদি না আপনি পাওয়ার কর্ড হ্যাঁচকা টান জন্য TDWTF এর চমৎকার ব্যাখ্যা দোষারোপ thedailywtf.com/Articles/My-Tales.aspx
মাইকেল Stum

22
এক্ষেত্রে কোডটি কী ফিরিয়ে আনবে আমি নিশ্চিত নই। কিন্তু আমি একেবারে নিশ্চিত করুন যে আপনি করা না আছি returnমধ্যে finallyদফা।
jfs

325

এপিএল (এর সবগুলি ব্যতীত), কেবল কোনও লাইনে কোনও প্রোগ্রাম লেখার ক্ষমতা।

যেমন এপিএলে একটি লাইনে কনওয়ের গেম অফ লাইফ :

Alt পাঠ্য http://catpad.net/michael/APLLife.gif

যদি সেই লাইনটি ডাব্লুটিএফ না হয়, তবে কিছুই নেই!

এবং এখানে একটি ভিডিও


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

24
গ্রীকদের কাছে ভাষার মতো মনে হচ্ছে।
এস্কো

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

7
@ ড্যানিয়েল: আপনি কোডের একটি লাইন লিখতে পুরো দুপুর কাটাচ্ছেন ... এবং একটি কোড লাইন পড়তে পুরো সপ্তাহে । ;-)
জারজেন এ। এরহার্ড

93
এপিএল একটি সাই-ফাই অ্যাকশন মুভিতে দেখতে দুর্দান্ত লাগবে। আমি কল্পনা করতে পারি যে কেউ তিন রঙের টার্মিনালটিতে বিভ্রান্তির সাথে বসে "শত্রু ক্ষেপণাস্ত্র ভেক্টর পুনরায় আকার দিন ... ট্রান্সপোজ করুন ... পাই বার লোগারিদম ... গ্রেড আপ - এবং - এক্সিকিউট করুন!" বিস্ফোরণ এবং উল্লাসের পরে।
জোয়ে অ্যাডামস

321

অদ্ভুত জিনিস সি ++ টেম্পলেটগুলির জন্য ব্যবহার করা যেতে পারে, "মাল্টি-ডাইমেনশনাল অ্যানালগ লিটারালস" দ্বারা সেরা প্রদর্শিত হয় যা "টানা" আকারগুলির ক্ষেত্রের গণনা করতে টেমপ্লেটগুলি ব্যবহার করে। নিম্নলিখিত কোডটি একটি 3x3 আয়তক্ষেত্রের জন্য বৈধ সি ++

#include"analogliterals.hpp"
using namespace analog_literals::symbols;

          unsigned int c = ( o-----o
                             |     !
                             !     !
                             !     !
                             o-----o ).area;

অথবা, 3D কিউব সহ অন্য একটি উদাহরণ:

  assert( ( o-------------o
            |L             \
            | L             \
            |  L             \
            |   o-------------o
            |   !             !
            !   !             !
            o   |             !
             L  |             !
              L |             !
               L|             !
                o-------------o ).volume == ( o-------------o
                                              |             !
                                              !             !
                                              !             !
                                              o-------------o ).area * int(I-------------I) );

18
যদিও এলিসের অ্যানালগ আক্ষরিকাগুলি দুর্দান্ত, তারা কি কোনও অদ্ভুত ভাষার বৈশিষ্ট্য , বা কোনও বৈশিষ্ট্যটি ব্যবহার করার জন্য কেবল একটি অদ্ভুত উপায় ?

85
আসল ডাব্লুটিএফ হ'ল দূষিতদের মধ্যে একটি দ্বারা তৈরি সংকলক ত্রুটি।
অ্যান্ড্রু ম্যাকগ্রিগোর

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

2
ও ও এল এর ক্রিয়াকলাপ এবং কি?
মিং-টাং

4
অর্ডার করার বিষয়টি গুরুত্বপূর্ণ, যেহেতু টেমপ্লেটগুলি অপারেটর ওভারলোডিংয়ের সৃজনশীল ব্যবহার করে ((অপারেটরগুলির অপব্যবহার করে রিয়েল কোড দিয়ে এটি করবেন না)
কোডটি

292

পার্লের অনেক বিল্ট-ইন ভেরিয়েবল:

  • $#- একটি মন্তব্য না !
  • $0, $$এবং $?- ঠিক একই নামের শেল ভেরিয়েবলগুলির মতো
  • , $&এবং $'- অদ্ভুত মিলের ভেরিয়েবলগুলি
  • $"এবং $,- তালিকা- এবং আউটপুট-ক্ষেত্র-বিভাজকগুলির জন্য অদ্ভুত পরিবর্তনীয়
  • $!- errnoযেমন একটি সংখ্যা strerror(errno)হিসাবে কিন্তু একটি স্ট্রিং হিসাবে
  • $_- চৌর্য পরিবর্তনশীল, সবসময় ব্যবহার করা হয় এবং দেখা যায় না
  • $#_ - সর্বশেষ সাব্রোটিন যুক্তির সূচক সংখ্যা ... হতে পারে
  • @_ - বর্তমান ফাংশনের (অ) নামগুলি ... হতে পারে
  • $@ - সর্বশেষ উত্থাপিত ব্যতিক্রম
  • %:: - প্রতীক টেবিল
  • $:, $^, $~, $-, এবং $=- আউটপুট বিন্যাসের কি কিছু
  • $.এবং $%- ইনপুট লাইন নম্বর, আউটপুট পৃষ্ঠা নম্বর
  • $/এবং $\- ইনপুট এবং আউটপুট রেকর্ড বিভাজক
  • $| - আউটপুট বাফারিং নিয়ামক
  • $[- আপনার অ্যারে বেস 0-ভিত্তিক থেকে 1-ভিত্তিতে 42-ভিত্তিতে পরিবর্তন করুন: WHEEE!
  • $}- মোটেও কিছুই না, অদ্ভুতভাবে যথেষ্ট!
  • $<, $>, $(, $)- বাস্তব এবং কার্যকর UIDs এবং GIDs
  • @ISA - বর্তমান প্যাকেজের সরাসরি সুপারক্লাসগুলির নাম
  • $^T - স্ক্রিপ্ট শুরুর সময়টি যুগের সেকেন্ডে
  • $^O - বর্তমান অপারেটিং সিস্টেমের নাম
  • $^V - পার্লের এটি কী সংস্করণ

সেগুলি এসেছে এমন আরও অনেক কিছুই রয়েছে। সম্পূর্ণ তালিকা এখানে পড়ুন ।


83
$[পরিবর্তনশীল তাদের সব সবচেয়ে মন্দ।
ব্র্যাড গিলবার্ট

24
পার্ল 6 যদি perldoc perlvarপ্রতি পাঁচ সেকেন্ডের জন্য পরীক্ষা না করেই কোড করতে পারি এমন কিছু হত তবে তা অবশ্যই প্রশংসা করবে । (যদিও আমি স্বীকার করি যে অর্ধেক সময় আমি এটি ভেবে দেখেছি "আমি জানি যে একটি বিশেষ পরিবর্তনশীল রয়েছে যা আমার পক্ষে এটি করতে পারে, তবে আমি কেবল
ক্রিস লুটজ

17
সমস্যাটি use English;হ'ল এটি RegExp কার্যকারিতাকে প্রভাবিত করে। আমি এটা করছি না। perldoc.perl.org/English.html#PERFORMANCE
ডেভ ওয়েব

13
@ ডেভ: আপনার লিঙ্ক করা পৃষ্ঠায় -N_match_vars বিকল্পের কারণে এটি কোনও সমস্যা নয়। @ ব্র্যাড: $ [খুব খারাপ। এর পিছনে উদ্দেশ্যটি খারাপ, হ্যাঁ, তবে এটি কার্যকরও করে না! @ আর্টেম: পারলভার থেকে "পার্ল শনাক্তকারীরা যেগুলি অঙ্ক, নিয়ন্ত্রণের অক্ষর বা বিরামচিহ্নগুলি দিয়ে শুরু হয় প্যাকেজ ঘোষণার প্রভাব থেকে রেহাই পায় এবং সর্বদা প্যাকেজ প্রধান হতে বাধ্য হয়; তারা কঠোর 'ভার্স' ত্রুটি থেকেও অব্যাহতিপ্রাপ্ত।" সুতরাং এর অর্থ হ'ল @ তৈরি করা এবং এমনকি কঠোরতার অধীনে কোনও ত্রুটি ছাড়াই নির্ধারিত করা হবে। ইসস!
rjh

4
@ ব্রায়ান: অফিসিয়াল ডকুমেন্টেশন নিজেই বলেছে যে সিন্টেক্স শিখার প্রস্তাব আপনি কীভাবে করেন যখন এমন কিছু পরিস্থিতি রয়েছে যেখানে পার্ল দোভাষী হরিস্টিকভাবে অনুমান করেন যে চরিত্রের ক্রমটির অর্থ কী? উদাহরণস্বরূপ /$foo[bar]/, [bar]অংশটি একটি অক্ষরের শ্রেণি বা অ্যারের সাবস্ক্রিপ্ট @foo? ভয়ঙ্কর উত্তরের জন্য গ্রেড পারলডাটা।
j_random_hacker

289

স্ট্রিংগুলিতে পিএইচপি'র সংখ্যাসূচক মান হ্যান্ডলিং । সম্পূর্ণ বিবরণের জন্য আলাদা প্রশ্নের এই পূর্ববর্তী উত্তরটি দেখুন তবে সংক্ষেপে:

"01a4" != "001a4"

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

"01e4" == "001e4"

পিএইচপি স্ট্রিং পছন্দ করে না। এটি কোনও অজুহাত খুঁজছে এটি আপনার মানগুলিকে সংখ্যা হিসাবে বিবেচনা করতে পারে। এই স্ট্রিংগুলিতে সামান্য হেক্সাডেসিমাল অক্ষরগুলি পরিবর্তন করুন এবং হঠাৎ পিএইচপি সিদ্ধান্ত নেয় যে এগুলি আর কোনও স্ট্রিং নয়, এগুলি বৈজ্ঞানিক স্বরলিপিতে নম্বর (পিএইচপি আপনি যে উদ্ধৃতি ব্যবহার করেছেন সেদিকে খেয়াল রাখে না) এবং এগুলি সমতুল্য কারণ নেতৃস্থানীয় শূন্যগুলি সংখ্যার জন্য উপেক্ষা করা হয়। এই পয়েন্টটিকে শক্তিশালী করার জন্য আপনি দেখতে পাবেন যে পিএইচপি এছাড়াও "01e4" == "10000"সত্য হিসাবে মূল্যায়ন করে কারণ এগুলি সমমানের মান সহ সংখ্যা। এটি নথিভুক্ত আচরণ, এটি কেবল খুব বুদ্ধিমান নয়।


56
কেবল === এবং! == ব্যবহার করুন। কোনও anyিলে .ালা ধরণের তুলনা প্রয়োজন না হলে যা ব্যবহার করা উচিত।
ডাইকম

14
@ ডাইকাম, আপনি যদি পুরো উত্তরটির লিঙ্কটি অনুসরণ করেন তবে আপনি দেখতে পাবেন যে আমি === অপারেটরের ব্যবহারকে সম্বোধন করেছি।
ড্যান ডায়ার

18
আবার দুর্বল টাইপিংয়ের স্ট্রাইক!
গিলোনবা

43
আমি সবসময় জানতাম পিএইচপি একটি পাপ ছিল। এখনও অবধি আমি বুঝতে পারি নি যে এটি একটি অমার্জনীয় পাপ ছিল: ডি
টমাস এডিং

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

282

আসুন সমস্ত ভাষার জন্য ভোট দিন (যেমন পিএল / আই) যা সংরক্ষিত শব্দ দিয়ে দূরে সরিয়ে দেওয়ার চেষ্টা করেছিল।

আপনি অন্য কোথাও আইনীভাবে এই ধরনের মজাদার মত প্রকাশ করতে পারেন:

IF IF THEN THEN = ELSE ELSE ELSE = THEN

( IF, THEN, ELSEপরিবর্তনশীল নাম)

অথবা

IF IF THEN THEN ELSE ELSE

( IFএকটি পরিবর্তনশীল, THENএবং ELSEsubroutines হয়)


1
@ কোয়ার্ক: এটির একটি পৃথক উত্তর! ;) ... (এবং হ্যাঁ, আপনি ইংরাজির মাধ্যমে প্রোগ্রাম করতে পারেন, কেবল এটি অন্য বিকাশকারীদের কাছে .ppt হিসাবে মোতায়েন করুন;)
ম্যাক্ক

28
@ রোডিআরিচ একদল মহিষ স্পষ্টভাবে বাফেল থেকে নয়, এগুলি কেবল ননডিসক্রিপ্ট মহিষে।
জার্জেন এ। এরহার্ড

18
জেমস যেখানে ছিল সেখানে জন শিক্ষকের উপর আরও ভাল প্রভাব ফেলেছিল।
গেমফ্রেক

4
আমি কিছুদিন আগে একটি বেন এবং জেরি আইসক্রিম কারখানার কারখানার বাইরে কিছু সাইন প্রস্তুতকারী দেখলাম। আমি তাদের কাজের সমালোচনা করেছি, আমি তাদের বলেছিলাম যে বেন এবং এবং এবং এবং জেরির মধ্যে পর্যাপ্ত জায়গা নেই।
টম গ্লেন

9
ভবিষ্যতের টেম্পোরাল প্রোগ্রামগুলির জন্য এটির প্রয়োজন হবে। তবে যদি এখন = এখন && কোথায় = তারপর তখন = যখন ততদিনে = এলিএসইহর
কেলি এস ফ্রেঞ্চ

282

জাভাস্ক্রিপ্ট অষ্টাল রূপান্তর 'বৈশিষ্ট্য' সম্পর্কে জানার জন্য ভাল:

parseInt('06') // 6
parseInt('07') // 7
parseInt('08') // 0
parseInt('09') // 0
parseInt('10') // 10

আরও বিশদ এখানে


60
আটটি এবং 9 বাদে সমস্ত সংখ্যার কাজ করে এমন একটি বাগে আটকে গেল !! পাগল হয়ে যাচ্ছিল !!! ধন্যবাদ ব্রায়ান!
ফারুজ

10
@ ইয়াদা আপনি অষ্টাল মানে না? হেক্সাডেসিমাল 0x।
লুস্কুবাল

48
এবং এজন্যই পার্সেন্ট একটি অতিরিক্ত optionচ্ছিক যুক্তি গ্রহণ করে :)।
লিরাণুনা

10
শীর্ষস্থানীয় 0 এর অর্থ অষ্টাল সংখ্যা। যেহেতু 8 টি একটি বৈধ
অষ্টাল

22
... এবং পার্সেন্ট ('010') -> 8 আপনাকে কেবল বিভ্রান্ত করার জন্য।
রিচার্ড গ্যাডসডেন

213

সিতে ডাফের ডিভাইস!

সি-তে একটি স্যুইচ স্টেটমেন্টের সাহায্যে একটি ডো / ইন্টারলেস করতে পারে। এই পদ্ধতিটি ব্যবহার করে একটি মেমকিটির উদাহরণ এখানে:

void duff_memcpy( char* to, char* from, size_t count ) {
    size_t n = (count+7)/8;
    switch( count%8 ) {
    case 0: do{ *to++ = *from++;
    case 7:     *to++ = *from++;
    case 6:     *to++ = *from++;
    case 5:     *to++ = *from++;
    case 4:     *to++ = *from++;
    case 3:     *to++ = *from++;
    case 2:     *to++ = *from++;
    case 1:     *to++ = *from++;
            }while(--n>0);
    }
}

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

16
@ ফ্রুনসী: "স্যুইচ স্টেটমেন্টটি ডিফল্টরূপে বিরতি না রাখার জন্য সম্ভবত ডফের ডিভাইস একটি ভাল কারণ" - সর্বদা সাধারণ কেসটিকে ডিফল্ট করুন। আমি সাধারণভাবে এটি বলতে চাই না এটি সাধারণ ঘটনা ..
ব্লুরাজা - ড্যানি ফ্লুঘুফুট

6
@ এমসিভি সম্ভবত এটি সবচেয়ে সহজ আপনি যদি এ্যাসেম্বলি কোড হিসাবে এটি পড়ার চেষ্টা করেন, অর্থাত্ whileশেষে একটি (শর্তাধীন) JMPফিরে আসে do, যা ব্যাখ্যা করে যে আপনি কেন এড়িয়ে যেতে পারেন doএবং এখনও লুপটিতে থাকতে পারেন।
wds

14
মনে রাখবেন যে ডাফের ডিভাইসটি সাধারণত আধুনিক সংকলকগুলির জন্য স্বাভাবিক লুপিং স্টেটমেন্টের চেয়ে ওয়ার্ড কোড তৈরি করে, যা আপনি নিজের হাত থেকে কীভাবে আরও ভাল লুপ আন্রোলিং করতে পারবেন তা জানেন।
বিলি ওনিল

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

204

নাম দিয়ে অ্যালগল পাস (সি সিনট্যাক্স ব্যবহার করে চিত্রিত):

int a[3] = { 1, 2, 3 };
int i = 1;

void f(int j)
{
    int k;
    k = j;  // k = 2
    i = 0;
    k = j;  // k = 1 (!?!)    
}

int main()
{
    f(a[i]);
}

33
আপনি যদি এটির বিষয়ে চিন্তা করেন তবে এটি আসলে কিছুটা বাঁকানো অর্থে তৈরি করে
আরসিআইএক্স

90
এটি চূড়ান্ত "রেফারেন্স দ্বারা পাস"।
ডায়কাম

3
যদিও স্কেলায় এটি সম্ভব ( def f(j : => int))
দারিও

10
তাহলে কি এইরকম কিছু ... template<typename T> struct by_name { virtual operator T&() = 0; }; void f(by_name<int> j) { ... } int main() { f(struct : by_name<int> { operator int&() { return a[i]; } }); }?
সাইমন বুচন

2
এটি আসলে বেশ সোজা-এগিয়ে: আপনি কোডের একটি ছোট টুকরো তৈরি করেন (সাধারণত "থঙ্ক" বলে, তাই উপরে আমার পাং) যা এই ক্ষেত্রে & a [i] - এ অভিব্যক্তি থেকে প্রাপ্ত ঠিকানার গণনা করে। এই ফাংশনটির একটি পয়েন্টার বলা ফাংশনে পাঠানো হয়, যা প্রতিটি পরামিতিটি অ্যাক্সেস করার পরে বর্তমান ঠিকানা গণনা করতে এটি ব্যবহার করে।
রিচার্ড পেনিংটন

189

পাইথনে:

>>> x=5
>>> 1<x<10
True
>>> 1<x<3
False

ডাব্লুটিএফ নয়, একটি দরকারী বৈশিষ্ট্য।


176
আমি আশা করি অন্য প্রতিটি ভাষার এই বৈশিষ্ট্যটি রয়েছে
810 এ 8

32
প্রায় প্রতিটি শীতল পাইথন বৈশিষ্ট্যটির মতোই, দেখে মনে হচ্ছে গিডো ঠিক একটি দুর্দান্ত লিপ বৈশিষ্ট্যটির বাক্য গঠনটিকে ALGOL- আকারযুক্ত। :-)
কেন

4
জিওফ্রে, এটি বৈশিষ্ট্যযুক্ত এবং (10 > 5 > 1) != ((10 > 5) > 1)পাইথন-এ।
সস্তানিন

18
এছাড়াও, এটি কেবল একবার মূল্যায়ন করে, তাই (funct_a(5)+5 > b > funct_a(5))কেবল funct_a(5)একবার কল করে । এটি একটি দুর্দান্ত বৈশিষ্ট্য!
খেলাবেন

57
@ খেলাবেন: না, funct_aসেই উদাহরণে দু'বার ডাকা হবে। এর b > funct_a(5) > cবিপরীতে কেবল একবার ডাকা হবে b > funct_a(5) and funct_a(5) > c
বাফে বায়োইস

189

জাভাতে:

int[] numbers() {
  return null;
}

হিসাবে লেখা যেতে পারে:

int numbers() [] {
  return null;
}

23
কি দারুন! আমি চাই যে যখন অ্যারে সিনট্যাক্সটি তৈরি করা হয়েছিল তখন আমি প্রাচীরের উপরে একটি ফ্লাই হয়ে উঠতে পারি!
অ্যাডাম পেইন্টার

29
আমি এটি বলতে ঘৃণা করি তবে ডাব্লুটিএফএফটি হ'ল সি টাইপ সিস্টেমের ধারাবাহিক বর্ধন। যদি সি ফাংশনগুলিতে অ্যারে ফেরত দেওয়ার অনুমতি দেওয়া হয় তবে এটি দেখতে এটির মতো হবে। আরও ভাল এটি পাঠযোগ্য করে তোলার জন্য নিখরচায় একটি ধারাবাহিকতা লঙ্ঘন। অনেকটা "কনস্ট চর * ভার" বনাম "চর কনস্ট * ভার" এর মতো।
গর্ডন রাইগলে

15
@ অ্যাডাম - আপনি যখন পরিবর্তনশীল ঘোষণাটি একইভাবে "ইনট স্টাফ []" এবং "ইনট [] স্টাফ" উভয়কেই মঞ্জুর করেন তখন এটি আসলে তাৎপর্যপূর্ণ হয়। তারা কেবল পদ্ধতি ঘোষণার জন্য একই নিয়মকে কাজ করতে দেয়।
ব্র্যান্ডন ইয়ারব্রু

2
@ লিম্বাস: প্রকৃতপক্ষে, const T*এবং T const*সমতুল্য, এটিই T* constপয়েন্টারটিকে সংযুক্ত করে। এছাড়াও, আমি সানস ফন্টগুলি ঘৃণা করি।
সাইমন বুচান

3
সর্বোপরি, numbers()[2]একটি আইনী বিবৃতি।
Badp

184

ইন্টারকাল সম্ভবত অদ্ভুত ভাষার বৈশিষ্ট্যগুলির সেরা সংমিশ্রণ। আমার ব্যক্তিগত প্রিয় COMEFROM বিবৃতি যা (প্রায়) GOTO এর বিপরীত।

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


16
বেশ খারাপ - লেটেলগুলিকে GOTO এ পরিণত করে। ভাষার বৈশিষ্ট্য হ্যাকারদের মতো শোনাচ্ছে ...
আরসিআইএক্স

114
ঠিক আছে, তবে ইন্টারকাল মজার হওয়ার কথা - এটি সত্যিই অবাক করা "গোটচা" নয়। ইন্টারকল সংকলক আসলে প্রোগ্রাম সংকলন করতে অস্বীকার করতে পারে যদি আপনি PLEASEপ্রায়শই পর্যাপ্ত পরিমাণে সংশোধক ব্যবহার না করেন!
গ্রো

10
এওপি :)
akhn

6
যে বিষয়টি আমাকে সবচেয়ে অবাক করে তা হ'ল "ওয়ার্ল্ড অফ কমার্শিয়াল টিআই" -তে সিস্টেমের প্রয়োজনীয়তা বিশ্লেষণে COMEFROM প্রকৃতপক্ষে ব্যবহারের ক্ষেত্রে বর্ণিত পাঠ্য ফাইলগুলিতে ব্যবহৃত হয়। (গুরুত্ব সহকারে: এখানে কিছু বিশ্লেষক এমএস অফিসের পরিবর্তে ওপেনঅফিসে কর্পোরেট বিস্তৃত স্থানান্তরকে বিলম্ব করেছেন কারণ প্রাক্তন কোনও লিঙ্কে প্রয়োজনীয় গ্রানুলারিটি সহ "কমেফ্রম" যথাযথভাবে উল্লেখ করতে পারেননি)
jsbueno 6'10

5
গ্রু: এটা আরও খারাপ। খুব ঘন ঘন कृपया দয়া করে ব্যবহার করুন এবং এটি আপনার প্রোগ্রামটি সংকলন করতে অস্বীকৃতি জানায় কারণ আপনি খাঁজ কাটাচ্ছেন (সি-ইন্টারকলের জন্য 33% থেকে 66% বিবৃতিতে দয়া করে সংশোধনকারী থাকতে হবে)।
ভ্যাটাইন

160

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

f(1)

সংকলকটি ধ্রুবক পুলের ধ্রুবক 1 এর ঠিকানাটি ফাংশনে পাঠাত। আপনি যদি ফাংশনটিতে প্যারামিটারের জন্য একটি মান নির্ধারণ করে থাকেন তবে আপনি প্রোগ্রামটিতে বিশ্বব্যাপী মানটি (এই ক্ষেত্রে 1 এর মান) পরিবর্তন করবেন। কিছু মাথা চুলকানো কারণ।


124
বিস্ময়। তারপর 2+2 পারেন সমান 5(এর খুব বড় মানের জন্য 2অবশ্যই!)।
অলোক সিংহল

12
উম, 2 এর কোন মান "2 + 2" == "5" তৈরি করবে? আমি জানি না যে কোনও পূর্ণসংখ্যার মান 2 এটি সঠিক হতে পারে।
হারুন

36
@ এলেলজ: আমার ধারণা যে এটি যে কোনও বিট প্যাটার্নের একটি অবিচ্ছেদ্য মান হিসাবে বয়ে যাবে। অন্যদিকে, আপনি সম্ভবত 5 থেকে 4 সেট করতে পারেন (সুতরাং এর ছোট মানগুলির জন্য 2+2সমান হবে )। 55
ডেভিড থর্নলে

18
আমাকে ক্ষমা করুন, অলোক, তবে এটি ফরটারনের প্রথম দিকে যা আমরা বলছি। এটি সত্য হবে না 2 + 2 = 5; এটি একটি সিনট্যাক্স ত্রুটি হবে। যা সত্য হবে তা হ'ল 2 + 2 .EQ. 5
ডেভিড থর্নলি


153

এটি কোনও ভাষার বৈশিষ্ট্য হিসাবে বিবেচনা করা যায় কিনা তা আপনি জানেন না, তবে সি ++ তে টেমপ্লেট সম্পর্কিত প্রায় কোনও সংকলক ত্রুটি প্রতিদিনের ভিত্তিতে বিশ্বের অনেক সি ++ প্রোগ্রামারগুলিতে ন্যায্য পরিমাণ ডাব্লুটিএফ সরবরাহ করে :)


15
এটি ঠিক আছে, টেমপ্লেট সম্পর্কিত বেশিরভাগ কোড ইতিমধ্যে বিশ্বজুড়ে প্রচুর ডাব্লুটিএফ তৈরি করে।
জোরিস টিমারম্যানস 13

43
ওহ এখন এসো। `স্ট্যান্ড :: বুনিয়াদী_প্রেম <চর, এসটিডি :: চর_ট্রেটস <চর>> ও স্টাডি :: অপারেটর << <স্টাড :: চর_ট্রেটস <<>> (স্ট্যান্ড :: বেসিক_স্ট্রীম <চর, স্টাড :: চর_ট্রেটস <<> > &, চর কনস্ট *) 'পুরোপুরি পাঠযোগ্য!
ম্যাট গ্রেয়ার

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

111
এমনকি কোনও ত্রুটি না থাকলেও, আপনার প্রোফাইলারের সাহায্যে কোন কাজগুলি সবচেয়ে বেশি সময় নেয় তা সন্ধান করার চেষ্টা করুন। ওহ, দেখুনstd::vector<std::pair<int, std::complex>, std::allocator<std::pair<int, std::complex> > >::vector< std::vector<std::pair<int, std::complex>, std::allocator<std::pair<int, std::complex> > >::iterator>(std::vector<std::pair<int, std::complex>, std::allocator<std::pair<int, std::complex> > >::iterator, std::vector<std::pair<int, std::complex>, std::allocator<std::pair<int, std::complex> > >::iterator, std::allocator<std::pair<int, std::complex> >)
rlbond

12
আমার মনে হয় এটি এখানে ফিট করে: আউটপুটটি পঠনযোগ্য করে তুলতে bdsoft.com/tools/stlfilt.html এ STLFilt দেখুন
foraidt

150

সি এর অনেকগুলি নাম স্পেস:

typedef int i;

void foo()
{
    struct i {i i;} i;
    i: i.i = 3;
    printf( "%i\n", i.i);
}

বা অক্ষর সহ:

typedef char c;

void foo()
{
    struct c {c c;} c;
    c: c.c = 'c';
    printf( "%c\n", c.c);
}

কীভাবে এটি নির্বিঘ্নে সংকলন করে!
আর্লজ

13
এনম এবং স্ট্রাক্টের জন্য +1 ট্যাগ শনাক্তকারী সি ইমোর সবচেয়ে বিভ্রান্তিকর অংশ। খুব কম লোকই বুঝতে পারে যে কোনও কাঠামোর পয়েন্টারকে টাইপডেফ করার আইডিয়ামটি এটি কীভাবে দেখায়।
টাদিউস এ। কাদুউবস্কি

11
এটি সংকলন করে কারণ আমি যাদের প্রত্যেকেরই প্রসঙ্গে প্রাসঙ্গিক কারণে অস্পষ্ট নেমস্পেস রয়েছে।
অ্যান্ড্রু ম্যাকগ্রিগর

149

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

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

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

সম্পাদনা 2: কিছু লোক যারা মন্তব্য করেন তাদের মনে হয় এটি এমন একটি বৈশিষ্ট্য যা আমি ঘৃণা করি বা আমার মনে হয় অজগরকে একটি দুর্বল ভাষা করে তোলে। আবার, সত্য নয়। যদিও আমি এটি এতটা পছন্দ করি না, এটি পয়েন্টের পাশে। প্রশ্নটি সবচেয়ে অদ্ভুত ভাষার বৈশিষ্ট্য সম্পর্কে , এবং আমি মনে করি এটি খুব অদ্ভুত, কারণ এটি খুব কিছু, খুব কম (তবে> 0) ভাষা ব্যবহার করে।


63
যদি এটি আপনার উত্পাদনশীলতার পথে চলে যায় তবে আপনার অ পাইথন কোডটি খুব বেশি পঠনযোগ্য হতে পারে না ...
টোর ভ্যালামো

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

53
+1 আরও একমত হতে পারে না, যদি আমার সম্পাদক (ইমাসস) স্বতঃস্ফূর্ত কিছু (যেমন ব্রেসেস / শুরু, শেষ / আপনি নামটি দিয়েছিলেন) এর ভিত্তিতে আমার কোডটি প্রবেশ করতে না পারেন তবে এটি মারাত্মক নির্বোধ। খুব সুন্দর যে কোনও রিফ্যাক্টরিং আপনি "বড়" ফাংশনে করবেন তা সত্যিই খারাপ অভিজ্ঞতা হতে পারে।
দিমিত্রি

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

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

138

আমি এই সম্পর্কে কিছুটা লড়াই করেছি:

1;

পার্ল ইন, মডিউলগুলি সত্য কিছু প্রত্যাবর্তন করতে হবে ।


29
কিছু মডিউল রানটাইম ক্রিয়াকলাপের ভিত্তিতে মানগুলি ফিরিয়ে দিতে পারে। আপনি যদি সর্বদা সত্য প্রত্যাবর্তন করেন তবে আপনাকে এখনও এ সম্পর্কে অবাস্তব
বেনামে

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

এটি পাশাপাশি একটি বৈধ সি বিবৃতি, কেবল কিছুই ফেরত আসে না।
সিগজুইস

24
মার্ক ডোমিনাস লিখেছিলেন, "আমি খুব কমই ব্যবহার করেছি 'Cogito ergo sum';যা প্রত্যেকেই জানেন যে সমস্ত সম্ভাব্য মহাবিশ্বে স্ব-স্পষ্টভাবে সত্য is এটি সর্বাধিক বহনযোগ্যতা নিশ্চিত করে।"
গ্রেগ বেকন

পিএইচপি <?=1;?>ফেরত 1. <?=true;?>রিটার্ন 1. <?=false;?>নালার রিটার্ন।
তালভি ওয়াটিয়া

135

আমি অবাক হয়েছি যে ভিজ্যুয়াল বেসিকের 7 লুপ কনস্ট্রাক্টসের কথা কেউ উল্লেখ করেনি ।

For i As Integer = 1 to 10 ... Next
While True ... End While
Do While True ... Loop
Do Until True ... Loop
Do ... Loop While True
Do ... Loop Until True
While True ... Wend

স্টিকিং কারণ! আপনার শর্তাধীন সামনে উপায় খুব জটিল!


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

43
আপনি এত বোকা অভিনয় করছেন কেন?
এরিক ফোর্বস

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

61
! ভিবিতে নেই, এটি "নয়"। অথবা এটা? হ্যাঁ, তা নয়!
ব্রায়ানারি

7
হ্যাঁ, "ওয়েন্ড" একটি ইংরেজি শব্দ, যার অর্থ কোনও কোর্স বা পথ ধরে যেতে বা এগিয়ে যাওয়া ( google.com/search?q=define%3A+wend )। আমি নিশ্চিত না যে এটি সাহায্য করে বা ব্যথা করে কিনা।
মাইকেল

134

যারা জানেন না তাদের জন্য bcএটি একটি "নির্বিচারে যথার্থ ক্যালকুলেটর ভাষা" এবং আমি এটি প্রায়শই দ্রুত গণনার জন্য ব্যবহার করি, বিশেষত যখন জড়িত সংখ্যাগুলি বড় হয় ( $প্রম্পট হয়):

$ bc -lq
12^345
20774466823273785598434446955827049735727869127052322369317059031795\
19704325276892191015329301807037794598378537132233994613616420526484\
93077727371807711237016056649272805971389591721704273857856298577322\
13812114239610682963085721433938547031679267799296826048444696211521\
30457090778409728703018428147734622401526422774317612081074841839507\
864189781700150115308454681772032

bcদীর্ঘদিন ধরে স্ট্যান্ডার্ড ইউনিক্স কমান্ড ছিল।

এখন "WTF বৈশিষ্ট্য" এর জন্য " এটি man bc(জোর দেওয়া খনি) থেকে এসেছে :

প্রস্থান : প্রস্থান বিবৃতিটি পড়লে, বিসি প্রসেসরটি সমাপ্ত হয়, যেখানে প্রস্থান বিবৃতি পাওয়া যায় তা নির্বিশেষে। উদাহরণস্বরূপ, "যদি (0 == 1) প্রস্থান করা হয়" এর ফলে বিসি বন্ধ হবে।

হোল্ট : হোল্ট স্টেটমেন্ট (একটি এক্সটেনশন) একটি এক্সিকিউটেড স্টেটমেন্ট যা বিসি প্রসেসরটি কেবলমাত্র মৃত্যুদন্ড কার্যকর করা হলে ছেড়ে দিতে বাধ্য করে। উদাহরণস্বরূপ, "যদি (0 == 1) হল্ট" বিসি বন্ধ করে দেয় না কারণ থামানো কার্যকর হয়নি is


41
আমি এই জিনিস জন্য হাস্কেল ব্যবহার।
টমাস এডিং

8
গুগল ক্যালকুলেটর?
igul222

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

6
@ ব্রায়ান, তবে আপনি পছন্দ করতে পারেন: echo '[q]sa[ln0=aln256%Pln256/snlbx]sb3135071790101768542287578439snlbxq'|dc(যদিও আপনি এটি ইতিমধ্যে জেনে থাকতে পারেন)।
অলোক সিংহল

2
আমি আইআরবি (রুবি ইন্টারেক্টিভ শেল) ব্যবহার করি। তবে আগের দিন, আমি সর্বদা ডিসির জন্য গিয়েছিলাম - বিসির মতো, তবে বিপরীত পোলিশ ব্যবহার করে। গিকটাস্টিক!
ট্রাগোমাসখ্লোস

134

আমি সর্বদা ভাবতাম কেন সহজ প্রোগ্রামটি ছিল:

class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

যেখানে এটি হতে পারে:

print "Hello World!"

সম্ভবত এটি কম্পিউটার বিজ্ঞানের শিক্ষার্থীদের প্রথম স্থানে ভয় দেখাতে পারে ...


34
কিছু ভাষায়, "হ্যালো ওয়ার্ল্ড!" একটি বৈধ প্রোগ্রাম।
ডেভিড থর্নলে

31
@ সোমোস: বেশিরভাগ গতিময় ভাষায় যেমন পাইথন, রুবি বা পার্ল মুদ্রণ "হ্যালো ওয়ার্ল্ড!" বা কিছু সামান্য প্রকরণ (যেমন মুদ্রণের পরিবর্তে পুটস) একটি বৈধ এবং সম্পূর্ণ প্রোগ্রাম।
ডেভ কির্বি

36
@ লোডমাস্টার: এর অর্থ এই ছিল যে "সমস্ত কোড একটি শ্রেণীর অন্তর্ভুক্ত" বা "সমস্ত কোড একটি ফাংশনের সাথে সম্পর্কিত" হ'ল অপ্রয়োজনীয় প্রতিবন্ধকতা
জিমি

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

68
আমি এমন লোকদের ভালবাসি যারা মনে করে যে ওওপি মানে হ'ল সবকিছুই একটি বস্তু হওয়া উচিত।
টোর ভালামো

132

জাভাস্ক্রিপ্ট অবজেক্ট ওরিয়েন্টেড, তাই না? সুতরাং আক্ষরিক স্ট্রিং এবং সংখ্যায় চলমান পদ্ধতিগুলি কাজ করা উচিত। লাইক "hello".toUpperCase()এবং 3.toString()। দেখা যাচ্ছে যে দ্বিতীয়টি একটি সিনট্যাক্স ত্রুটি, কেন? কারণ পার্সার আশা করে যে কোনও সংখ্যার পরে কোনও বিন্দুটি একটি ভাসমান বিন্দু আক্ষরিক হয়ে উঠবে। এটি ডব্লিউটিএফ নয়, ডব্লিউটিএফ হ'ল এটির কাজটি করতে আপনাকে কেবল একটি অন্য বিন্দু যুক্ত করতে হবে:

3..toString()

কারণটি হ'ল আক্ষরিক 3.হিসাবে ব্যাখ্যা করা হয় 3.0এবং এটি 3.0.toString()সূক্ষ্মভাবে কাজ করে।


8
পাইথনেও এইভাবে কাজ করে (চেষ্টা করুন 3..__add__(4))। তারপরে আবার আমি মনে করি (3).__add__(4)এটি করার মতো অনেক কম মস্তিষ্কের ক্ষতি হয়েছে :)
Badp

49
আপনি কেবল (3) .toString () করতে পারেন
জোসেফ

13
@ গরিলা 3 ডি: হ্যাঁ, তবে এটি কোনও অদ্ভুত ভাষার বৈশিষ্ট্য নয়, তাই না?
থিও

25
3.0.toString()আমার চোখ চুলকায়
বেন ফাঁকা

18
127.0.0.1.toInt ()
বার্কাস

130

জাভাস্ক্রিপ্টে:

2 == [2]

// Even stranger
2 == [[[2]]]

// And down-right nutty
var a = { "abc" : 1 };
a[[[["abc"]]]] === a["abc"]; // this is also true

ভাগ্যক্রমে স্ট্যাকওভারফ্লো ডটকমের দয়ালু লোকেরা আমাকে পুরো বিষয়টি ব্যাখ্যা করেছিল: জাভাস্ক্রিপ্টে 2 == [2] কেন?


6
এজন্য আপনার ===পরিবর্তে ব্যবহার করা উচিত ।
গম্বো

10
এটি দরকারী বিটিডব্লিউ, যদি আপনার কোনও ফাংশন থাকে যা একটি নম্বর দেয় এবং আপনি এটির সাথে অতিরিক্ত কিছু মেটাডেটা ফিরিয়ে দিতে চান তবে কিছু অতিরিক্ত ক্ষেত্র যুক্ত করে আপনি [নম্বর] ফিরে আসতে পারেন। সাধারণ কোড কখনই জানতে পারবে না এটি আসল সংখ্যা নয় এবং অন্যান্য কোড প্রয়োজনীয় মেটাডেটা পেতে পারে।
অ্যান্ড্রে শেকিন

36
@ অ্যান্ড্রে বাদে যদি আমাকে কখনও আপনার কোড অনুসারে কোড বজায় রাখতে হয় তবে আমি খুব শীঘ্রই এর লেখককে মৃত্যু কামনা করব।
ব্রেটন

@ আন্দ্রে, এটি দুর্দান্ত ধারণা! আপনি Number(n)অনুরূপ কিছু করতে ব্যবহার করতে পারেন। দুর্ভাগ্যক্রমে আমাদের উভয় সমাধানের ===বিরতি = (।
জাভি

5
+1: আমি নিজেকে একটি জ্ঞানী জেএস প্রোগ্রামার হিসাবে বিবেচনা করেছি এবং আমি এ সম্পর্কে কখনই জানতে পারি না: ডি
টমাস এডিং

126

আমার সবচেয়ে বড় ঘৃণ্য বৈশিষ্ট্যটি হ'ল যে কোনও কনফিগারেশন ফাইল সিনট্যাক্স যা শর্তযুক্ত যুক্তি অন্তর্ভুক্ত। এই ধরণের জিনিস জাভা বিশ্বে ছড়িয়ে পড়েছে (পিঁপড়া, মাভেন ইত্যাদি You আপনি জানেন যে আপনি কে!)।

আপনি সীমাবদ্ধ ডিবাগিং এবং সীমাবদ্ধ সম্পাদক সমর্থন সহ, এসি ** পি ভাষায় প্রোগ্রামিং শেষ করেন।

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


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

46
আসুন একে একে ডান বলি।
Mletterle

30
আমেন। যদি আপনার কনফিগারেশন বা বিল্ড ল্যাঙ্গুয়েজ সম্পূর্ণ টুরিং হয় তবে আপনি এটি ভুল করছেন। আমি আপনার দিকে সিএমকে / অটোটুলগুলি খুঁজছি।
জোসেফ গারভিন

16
মূলত
লুয়ার

1
ঠিক আছে, যদি আপনার কোডটি পাইথনে থাকে তবে আপনার কনফিগারেশন ফাইলটি পাইথন ফাইল হওয়া একটি দুর্দান্ত ধারণা, কারণ আপনি কেবল ফাইলটি আমদানি করে এবং মডিউলটির বৈশিষ্ট্যগুলি পড়েন। এবং আপনি আপনার কনফিগার ফাইলে পাইথনের 100% টিউরিং সম্পূর্ণ ক্ষমতা পান।
asmeurer

113

পাওয়ারবাসিক (www.powerbasic.com) সংকলক নির্দেশাবলী অন্তর্ভুক্ত:

# BLOAT {bloatsize}

এটি <bloatsize>বাইট দ্বারা নির্বাহযোগ্য সংকলনের আকার বৃদ্ধি করে । এক্সিকিউটেবল তৈরি করা লোকেরা উত্পাদিত এক্সিকিউটেবলের ছোট আকার পছন্দ না করে এমন ক্ষেত্রে সংকলকটিতে এটি স্থাপন করা হয়েছিল। এটি প্রস্ফুটিত প্রোগ্রামিং ভাষার সাথে প্রতিযোগিতা করতে EXE আরও বড় বলে মনে করে :)


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

42
এটি আমাকে সম্প্রতি পড়া কিছু সম্পর্কে মনে করিয়ে দেয়। তারা একটি এফপিএস পরীক্ষা করছিল এবং খারাপ লোকদের যে হিট পয়েন্ট রয়েছে তার সংখ্যা বাড়ানোর সিদ্ধান্ত নিয়েছে। তারপরে তারা পরীক্ষকদের জিজ্ঞাসা করলেন তারা কীভাবে এআই, এবং তারা কসম খেয়েছিল যে এটি আরও স্মার্ট। তবে এআই পরিবর্তন হয়নি, কেবল হিট পয়েন্ট। মানুষের মাথায় বিশ্ব সম্পর্কে একটি নির্দিষ্ট বিবরণ রয়েছে এবং আপনি যদি তাদের বুঝতে এবং তাদের প্রত্যাশা মেলেন তবে তারা খালি এটিকে তাদের আখ্যানকে বৈধ বলে ধরে নেবে।
নেট সিকে

5
আমার প্রোগ্রামগুলিতে এগুলি দেখে মনে হচ্ছে যে তারা কিছু জটিল করছেন I ফিরে এলিমেন্টারি স্কুলে, তা।
ম্যাটি ভির্ককুনেন

3
স্কুলে ফিরে আমাদের ৮০২৮6 মেশিন ছিল এবং যুক্তিসঙ্গতভাবে আমার কিছু স্ক্রিন আউটপুট রুটিন যুক্তিযুক্ত গতি পেতে (যেমন ক্রলিং নয়) লিখতে হয়েছিল।
বার্কাস

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