এমন একটি ফাংশন লিখুন যা আপনাকে জানায় যে এর দুটি লাইনটি দুটি টি সরানো হয়েছে


19

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

নির্দেশাবলী ছিল:

একটি ফাংশন লিখুন যাতে পাঁচটি লাইন থাকে।

আপনি যদি ফাংশনটি যেমনটি চালনা করেন তবে এটি 0 এ ফিরে আসা উচিত।

আপনি যদি পাঁচটি লাইনের কোনও একটি সরিয়ে ফাংশনটি পরিচালনা করেন তবে এটি আপনাকে বলবে যে কোনটি লাইন সরানো হয়েছে (উদাহরণস্বরূপ, আপনি যদি চূড়ান্ত লাইনটি সরিয়ে ফেলেন তবে এটি 5 ফিরে আসবে)।

এখন, কিছু বেশি কিশোর কিছুর চেষ্টা করা যাক more

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

সুতরাং, উদাহরণস্বরূপ, আমি যদি 1 এবং 5 লাইনগুলি সরিয়ে ফেলি, তবে ফেরতের মানটি [1,5] হওয়া উচিত, এবং আমি 3 এবং 4 লাইনগুলি সরিয়ে দিলে, ফেরতের মানটি [3,4] হওয়া উচিত।

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

আপনি সাহায্যকারী ফাংশন ব্যবহার করতে পারেন? হ্যাঁ, তবে কেবল যদি আপনার করতে হয়। এটি একা একা স্ব-নিহিত ফাংশনটি আদর্শ the

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


2
একটি খালি তালিকা ঠিক আছে ফিরে থাকলে কোনো লাইন সরিয়ে ফেলা হয়, অথবা এটি নেই আছে সংখ্যা 0 হতে?
ইলমারি করোনেন

1
ফাংশনটিতে রিটার্ন লাইনটি মুছে ফেলা লাইনগুলির মধ্যে একটি?
le_vine

11
আমরা কি আশা করতে পারি যে আগামীকাল "তিন-লাইন" সংস্করণটি পোস্ট করা হবে?
হাওয়ার্ড

ফাংশনটি অবশ্যই আক্ষরিকভাবে অ্যারেটি ফিরিয়ে দেবে বা এটি বিশ্বব্যাপী সুযোগ .etc এ কোনও পরিবর্তনকে সম্পাদনা করতে পারে? আমি মনে করি না যে এটি 5 টি লাইনে সম্ভব যখন প্রকৃতপক্ষে প্রত্যাবর্তন করতে না পারার কারণে ফিরে আসবে কারণ সমস্ত লাইন অবশ্যই ফিরবে যদি ফিরতি সরিয়ে ফেলা হয়। অটোমেটিক রিটার্নিং ফাংশনগুলির মতো কিছু ভাষা quirks না থাকলে আমি জানিনা।
জর্জ রিথ

আমি মনে করি আপনার আগের প্রশ্নটির লিঙ্কটিও সরবরাহ করা উচিত, যে কেউ আগ্রহী এবং এটি দেখেনি।
DroidDev

উত্তর:


17

পার্ল

sub foo {
    @a = (2..5);
    @a = grep $_ != 2, (@a ? @a : (1..5));
    @a = grep $_ != 3, (@a ? @a : (1..5));
    @a = grep $_ != 4, (@a ? @a : (1..5));
    @a = grep $_ != 5, (@a ? @a : (1..5));
}

এটি প্রকৃতপক্ষে মুছে ফেলা যেকোন সংখ্যক রেখার জন্য কাজ করে (যতক্ষণ না এটি সমস্ত লাইন নয়, যতক্ষণ না ) তুচ্ছভাবে 5 টিরও বেশি লাইনে প্রসারিত হতে পারে। কোনও সহায়ক ফাংশন ব্যবহার করা হয় না এবং এটি প্রতি লাইনে কেবল একটি বিবৃতি ব্যবহার করে। এটি এই সত্যের উপর নির্ভর করে যে কোনও স্পষ্ট returnবক্তব্য না থাকায় পার্ল ফাংশনের রিটার্ন মান এটির সর্বশেষ বিবৃতিটির মান।

নোট করুন (তালিকার প্রসঙ্গে) এই কোডটি যদি কোনও লাইন মুছে ফেলা না হয় তবে 0 নম্বরটির পরিবর্তে একটি খালি তালিকা দেয়। এটি ঠিক করা যেতে পারে (উদাহরণস্বরূপ @a ? @a : 0;শেষ লাইনে " " সংযুক্ত করে), তবে কোডটি আরও খারাপ হবে। যাই হোক, এ স্কালে প্রসঙ্গ এটা নয় মোছা লাইন, যা 0 হতে হবে যদি কোনো লাইন সরানো হয়েছে সংখ্যা ফিরে যান। ;-)


9

চুনি

পার্ল সংস্করণের মতো, তবে রুবিতেও। অনুরোধ অনুসারে যদি কোনও লাইন মুছে ফেলা না হয় তবে আমি 0 ফিরিয়ে দিই, তবে আমি সম্মত হই যে এটি কোডটিকে আরও সুশৃঙ্খল করে তোলে এবং ফেরতের মান হিসাবে যথেষ্ট বোঝায় না।

def which_lines_removed(arr = [*1..5])
  arr -= [1]
  arr -= [2] 
  arr -= [3] 
  arr -= [4] 
 (arr -= [5]).empty? ? 0 : arr
end

কোনও লাইন মুছে ফেলা না হয়ে যদি খালি অ্যারেটি যদি রিটার্ন মান হিসাবে গ্রহণযোগ্য হয় তবে কোডটি এর মতো দেখায়:

def which_lines_removed(arr = [*1..5])
  arr -= [1]
  arr -= [2] 
  arr -= [3] 
  arr -= [4] 
  arr -= [5]
end

উভয় পদ্ধতি 0 থেকে 5 এর মধ্যে মুছে ফেলা যেকোন সংখ্যক লাইনের জন্য কাজ করে।


4

জাভাস্ক্রিপ্ট, 152 টি অক্ষর গল্ফ করেছে

function t() {
    var fa = (f + '').match(/\d/g)
    var ra = []
    for (var i = 0; i < 5; i++) {
        if (fa.indexOf(i + '') < 0) ra.push(i + 1)
    }
    return ra
}

function f() {
    0; return t()
    1; return t()
    2; return t()
    3; return t()
    4; return t()
}

Golfed:

function t(){for(a=[],i=0;++i<5;)if((f+'').indexOf(i)<0)a.push(i+1);return a}function f(){
return t(0)
return t(1)
return t(2)
return t(3)
return t(4)
}

স্ব অন্তর্ভুক্ত (তবে কুৎসিত):

function f() {
    0; var ra = []; for (var i = +![]; i < 5; i++) if ((f + '').match(/\d/g).indexOf(i + '') < +![]) ra.push(i); return ra
    1; var ra = []; for (var i = +![]; i < 5; i++) if ((f + '').match(/\d/g).indexOf(i + '') < +![]) ra.push(i); return ra
    2; var ra = []; for (var i = +![]; i < 5; i++) if ((f + '').match(/\d/g).indexOf(i + '') < +![]) ra.push(i); return ra
    3; var ra = []; for (var i = +![]; i < 5; i++) if ((f + '').match(/\d/g).indexOf(i + '') < +![]) ra.push(i); return ra
    4; var ra = []; for (var i = +![]; i < 5; i++) if ((f + '').match(/\d/g).indexOf(i + '') < +![]) ra.push(i); return ra
}

মূলত ফাংশন শোষণ করে toString প্রতিটি লাইন সংখ্যা দ্বারা । নোট করুন যে আপনাকে আসলে এর কারণে লাইনটি সরিয়ে ফেলতে হবে (এটির মন্তব্য করা কার্যকর হবে না)।

এটি আসলে সরানো যেকোন সংখ্যক লাইনের জন্য কাজ করে ! এটি সরানো রেখাগুলির একটি অ্যারে বা কোনওটি অপসারণ না করা হলে খালি অ্যারে ফিরিয়ে দেবে। (আমি সহজে যে শূন্য (ফিরে আসার প্রতিস্থাপন পরিবর্তন হতে পারে return raসঙ্গেreturn ra || 0 ), কিন্তু আমি খালি অ্যারে সমাধান যেহেতু এটি বাস্তব জগতে আরো উপযোগী হবে মত।)

উদাহরণস্বরূপ, প্রথম লাইনটি রিটার্ন অপসারণ করে এবং প্রথম লাইনটি ছাড়া [1]সমস্ত কিছু সরিয়ে দেয় [2,3,4,5]। (অবশ্যই, আপনি সমস্ত লাইন সরিয়ে দিলে এটি কাজ করে না ;-))


3

চুনি

def f
    a = [ 2, 3, 4, 5 ]
    defined?(a) ? a = a.select { |num|    num != 2 } : a = [ 1, 3, 4, 5 ]
    defined?(a) ? a = a.select { |num|    num != 3 } : a = [ 1, 2, 4, 5 ]
    a = a.select { |num|    num != 4 }
    (a = a.select { |num|    num != 5 }) == [] ? a = 0 : a
end

এটি কীভাবে কাজ করে: আমার ধারণাটি ছিল: একটি অ্যারে তৈরি করুন এবং প্রতিটি লাইনে একটি নির্দিষ্ট মান সরিয়ে ফেলুন। সুতরাং, প্রথম লাইনে, আমার কাছে অ্যারে রয়েছে [ 1, 2, 3, 4, 5], উপাদানটি 1সরানো আছে। দ্বিতীয় লাইনে, যদি aইতিমধ্যে সংজ্ঞায়িত করা হয় তবে উপাদানটি সরান 2। অন্যথায়, উপাদানটি 2সরানো সহ একটি নতুন অ্যারে তৈরি করুন । লাইন 3 এর জন্য একই করুন 4 লাইন 4 এ, আপনি নিশ্চিত হতে পারেন যে ইতিমধ্যে একটি অ্যারে তৈরি হয়েছে, সুতরাং কেবল উপাদানটি সরিয়ে ফেলুন 4। 5 লাইনে প্রথমে উপাদানটি সরিয়ে ফেলুন 5, এবং যদি aখালি অ্যারে হয় তবে ফিরে আসুন 0। অন্যথায়, ফিরে a


3

পাইথন

f=lambda:{1,2,3,4,5}-{
1,
2,
3,
4,
5,
} or 0

কোনও লাইন সরানো না হলে 0 প্রদান করে, অন্যথায় সরানো রেখাগুলি ফিরিয়ে দেয়। আপনি ০ থেকে 6th ষ্ঠ লাইন ;-) বাদে 1 থেকে 5 লাইন সরিয়ে ফেলতে পারেন।


2

জাভাস্ক্রিপ্ট, স্বয়ংসম্পূর্ণ, 0, 1, 2 সরানো লাইনের জন্য কাজ করে ( 607  315 186 অক্ষর)

লাইভ ডেমো

অন্য চ্যালেঞ্জের মতো জেএস ভেরিয়েবল উত্তোলন এবং বিশ্বব্যাপী ফাঁস আপত্তিজনক :)

function(r){
r.shift();
r.splice(r.indexOf(2),1)
r.splice(r.indexOf(3),1);a=b=1;if(this.a&&this.b)return r
var a;r.splice(r.indexOf(4),1);b=1;if(this.b)return r
var b;r.pop();return r[0]?r:0
}

প্যারামিটার হিসাবে অ্যারে [1,2,3,4,5] এর সাথে ডাকা হবে।

315 অক্ষর

function(r){
var a;
var b;
var c;a=1;b=2;d=4;e=5;for(i in(z="abde".split("")))if(y=this[z[i]])r.push(y);return r.length?r:0
var d;a=1;b=2;c=3;e=5;for(i in(z="abce".split("")))if(y=this[z[i]])r.push(y);return r.length?r:0
var e;a=1;b=2;c=3;d=4;for(i in(z="abcd".split("")))if(y=this[z[i]])r.push(y);return r.length?r:0
}

প্যারামিটার হিসাবে খালি অ্যারে দিয়ে ডাকা হবে।



অ-গল্ফ সংস্করণ

(এছাড়াও সরানো 3 এবং 4 লাইন জন্য কাজ করে):

function(r){
var a;b=c=d=e=1;if(this.b)r.push(2);if(this.c)r.push(3);if(this.d)r.push(4);if(this.e)r.push(5);return r.length?r:0;
var b;a=c=d=e=1;if(this.a)r.push(1);if(this.c)r.push(3);if(this.d)r.push(4);if(this.e)r.push(5);return r.length?r:0;
var c;a=b=d=e=1;if(this.a)r.push(1);if(this.b)r.push(2);if(this.d)r.push(4);if(this.e)r.push(5);return r.length?r:0;
var d;a=b=c=e=1;if(this.a)r.push(1);if(this.b)r.push(2);if(this.c)r.push(3);if(this.e)r.push(5);return r.length?r:0;
var e;a=b=c=d=1;if(this.a)r.push(1);if(this.b)r.push(2);if(this.c)r.push(3);if(this.d)r.push(4);return r.length?r:0;
}

প্যারামিটার হিসাবে খালি অ্যারে দিয়ে ডাকা হবে।


2

javascript:

var f = function(){
    1
    2
    a=[];for(i=0;i++<6;){if((f+'').indexOf(i)<0){a.push(i)}}return a.length?a:0;3
    a=[];for(i=0;i++<6;){if((f+'').indexOf(i)<0){a.push(i)}}return a.length?a:0;4
    a=[];for(i=0;i++<6;){if((f+'').indexOf(i)<0){a.push(i)}}return a.length?a:0;5
}

বেহালা


2

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

(function (i){

i += .1;     // line 1
i += .02;    // line 2
i += .003;   // line 3
i += .0004;  // line 4
i += .00005; // line 5

return (Math.round((.12345-i)*100000)/100000+'').match(/([1-5])/g) || 0 })(0)

সেটিতে কল আপনি কি চান তা কিন্তু আমি মনে করি এটা প্রশংসনীয়

আপনাকে জানতে দেয় কোন লাইনগুলি মুছে ফেলা হয়েছিল (1 বা ততোধিক), বা যদি কোনও লাইন অপসারণ না করা হয় তবে 0 সমস্ত 5 লাইন সরানো যেতে পারে।

সম্পাদনা করুন:

কারণ এটি আমার নজরে আনা হয়েছিল যে আমার কোডটি সম্ভবত 6 টি লাইন নিয়ে থাকতে পারে এবং এটি বিধি লঙ্ঘন করার কারণে আমি এটিকে নিম্নের সাথে সামঞ্জস্য করেছি:

(Math.round((.12345 - (new (function(){

    this.i = isFinite(this.i) ? this.i + .1 : .1 ;
    this.i = isFinite(this.i) ? this.i + .02 : .02;
    this.i = isFinite(this.i) ? this.i + .003 : .003; 
    this.i = isFinite(this.i) ? this.i + .0004 : .0004;
    this.i = isFinite(this.i) ? this.i + .00005 : .00005; 

})().i || 0) )*100000)/100000+'').match(/([1-5])/g) || 0

একই প্রযোজ্য - এটি 1- সমস্ত বা 0 না থাকলে 0 থেকে সরানো রেখার একটি অ্যারে প্রদান করবে ।


এটি সাহায্য করবে কিনা তা নিশ্চিত নয় তবে আমি লক্ষ্য করেছি যে এটি অন্য কেউ করছে, সুতরাং .. খনন স্পেসিং সহ 149 টি অক্ষর এবং 128 ছাড়াই।
যুক্তি 8

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

1
"রিটার্ন" লাইনটি ফাংশনের মধ্যে রয়েছে, সুতরাং ফাংশনে আসলে ছয়টি লাইন কোড রয়েছে যা চ্যালেঞ্জের বিধি লঙ্ঘন করে।
jawns317

@ জওয়ানস ১17১,, "লাইন" কীভাবে সংজ্ঞায়িত করা হয়েছে তা সম্পর্কে আমি নিশ্চিত নই। কেউ দয়া করে একটি পরিষ্কার সংজ্ঞা দিতে পারেন?
লজিক 8

@ লজিক 8 সরান function(){এবং }(এবং কোনও সহায়ক ফাংশন) লাইনের সংখ্যা গণনা করুন।
ডুরকনব

1

কমন লিস্প

(defun which-lines-are-removed (&aux (x (list 1 2 3 4 5))) 
  (setq x (remove-if #'(lambda (x) (eql x 1)) x))
  (setq x (remove-if #'(lambda (x) (eql x 2)) x))
  (setq x (remove-if #'(lambda (x) (eql x 3)) x))
  (setq x (remove-if #'(lambda (x) (eql x 4)) x))
  (setq x (remove-if #'(lambda (x) (eql x 5)) x))
)

এটি 1-4 লাইন অপসারণের জন্য কাজ করে। আপনি যদি সমস্ত লাইন অপসারণ করেন তবে এটি একইরূপে ফিরে আসবে যেন আপনি কোনওটি অপসারণ করেন না।

এনবি: নিজস্ব লাইনে শেষ বন্ধনী রাখা খারাপ স্টাইল হিসাবে বিবেচিত হয়, তবে যেহেতু অন্যান্য ভাষাগুলি রয়েছে endএবং }আমি ধরে নিয়েছি এটি অনুমোদিত allowed


1

পাইথন

def function(a = [1,2,3,4,5]):
    delete(a, len(a)-5)#1
    delete(a, len(a)-4)#2
    delete(a, len(a)-3);print a if len(a)==2 else '',#3
    delete(a, len(a)-2);print a if len(a)==2 else '',#4
    delete(a, len(a)-1);print a if len(a)==2 else '',#5

def delete(a, i):
    del a[i]
    return a

এটি সমস্ত লাইনের জন্য কাজ করে - তবে কেবল দুটি মুছে ফেলা হয়। যদি কেবল একটি লাইন মুছে ফেলা হয় তবে এটি মুছে ফেলা লাইন এবং লাইন 5 মুদ্রণ করবে too যদি অনেকগুলি লাইন মুছে ফেলা হয় তবে এটি কিছুই মুদ্রণ করবে না।

এটি একটি সহায়ক ফাংশন ব্যবহার করে কারণ ডেল কীওয়ার্ডটি একটি লাইনে ব্যবহার করা যায় না; (যতদূর আমি জানি)

মূলত, প্রতিটি লাইন কন্সট্রাক্টরে ঘোষিত অ্যারেতে নিজেকে মুছে দেয়, তবে পর্যাপ্ত রেখা মুছে ফেলা থাকলে অ্যারেটি মুদ্রিত হয়।

এই ফাংশনটি দুটি উপায়ে স্পেকটিকে মিস করে:

  1. এটি যদি হয় ঠিক তেমন চালানো হয় তবে এটি মুদ্রণ করে না (এটি ধরে রাখে শেষ দুটি লাইন মন্তব্য করা হয়েছে এবং তাই 4, 5 প্রিন্ট করে
  2. এটি ধরে নেয় printএবং returnবিনিময়যোগ্য

print ''অতিরিক্ত কি নতুন লাইন চরিত্র তৈরি করা হবে না ?
সাইমনটি

1

Déjà Vu

যে কোনও লাইন মুছে ফেলার জন্য কাজ করে (যতক্ষণ না আপনি কমপক্ষে একটি লাইন ছেড়ে যান)

local line n:
    try:
        dup
    catch stack-empty:
        dup set{ 1 2 3 4 5 }
    delete-from swap n

func which-gone:
    line 1
    line 2
    line 3
    line 4
    line 5

0

আর

আর এর সাথে আমার আরও একটি সংস্করণ রয়েছে যা আমি মনে করি এটি ভাল (তবে একটি সহায়ক ফাংশন ব্যবহার করে):

trick <- function(sym, value) {
  assign(sym, value, envir=parent.frame())
  values <- unlist(as.list(parent.frame()))
  if(length(values)==5) 0 else which(!1:5 %in% values)
}

reportRemovedLines <- function(){
  trick("a", 1)
  trick("b", 2)
  trick("c", 3)
  trick("d", 4)
  trick("e", 5)
}

বা কেউ ডিফল্ট আর্গুমেন্ট হিসাবে এটির সাহায্যকারী ফাংশনটি ব্যবহার করে এড়াতে পারবেন (অভিন্নভাবে কাজ করে তবে কম পঠনযোগ্য - তবে এটি "আলাদাভাবে সংজ্ঞায়িত" সহায়ক ফাংশন ব্যবহার করে না):

funnyVersion <- function(trick = function(sym, value) {
  assign(sym, value, envir=parent.frame())
  values <- unlist(as.list(parent.frame()))
  if(length(values)==5) 0 else which(!1:5 %in% values)
}){
  trick("a", 1)
  trick("b", 2)
  trick("c", 3)
  trick("d", 4)
  trick("e", 5)
}

উভয়ই reportRemovedLines()এবং funnyVersion()সরানো যেকোন সংখ্যক লাইন নিয়ে কাজ করে - আপনি যদি সমস্ত লাইন অপসারণ করেন তবে (সে ক্ষেত্রে তারা ফিরে আসবে NULL)। তারা আসলে লাইন নম্বরগুলি ফিরিয়ে দেয়, কেবল তাদের মুদ্রণ করে না - আর হিসাবে, কোনও ফাংশনের মধ্যে মূল্যায়ন করা শেষ অভিব্যক্তির মান স্বয়ংক্রিয়ভাবে ফিরে আসবে।

এটা কিভাবে কাজ করে? কৌশলটি হয়trick যা তার "প্যারেন্ট এনভায়রনমেন্ট" (অর্থাৎ এটির ফাংশনের পরিবেশ) থেকে সমস্ত বস্তু গ্রহণ করে, তাদের মানগুলি ভেক্টরে একসাথে রাখে এবং প্রত্যাবর্তন করে, যা 1 থেকে 5 এর মান প্রতিনিধিত্ব করে না।


0

জাভাস্ক্রিপ্ট (136/166 অক্ষর)

শুরুতে ঘোষিত কিছু মান সহ একটি ছোট সংস্করণ:

function(){b=[1,2,3,4,5],i=0
    b.splice(0,1);i++
    b.splice(1-i,1);i++
    b.splice(2-i,1);i++
    b.splice(3-i,1);i++
    b.splice(4-i,1);i++
return b}

একটি স্ব-অন্তর্নিহিত সংস্করণ (আপনার কোনও কিছু পাস করার দরকার নেই - বি আর্গুমেন্ট রয়েছে তাই আমি খ পরীক্ষা করে দেখতে পারি যে খ দিয়ে সংজ্ঞা দেওয়া হয়েছে কিনা) || )

function(b){
    b=[2,3,4,5],i=1
    b=b||[1,2,3,4,5],i=i||0,b.splice(1-i,1);i++
    b=b||[1,2,3,4,5],i=i||0,b.splice(2-i,1);i++
    b.splice(3-i,1);i++
    b.splice(4-i,1);i++
return b}

হ্যাঁ, উভয়েরই returnবক্তব্য রয়েছে, তবে এটি কেবলমাত্র যদি আমি অন্তর্নিহিত প্রত্যাবর্তনের সাথে ভাষার সাথে প্রতিযোগিতা করি fair


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

যে উত্তরগুলি সাহায্যকারীদের ব্যবহার করে সেগুলি সম্পর্কে কী?
ববি মেরিনফ

সহায়ক কার্যাদি সুস্পষ্টভাবে অনুমোদিত। তবে যে ফাংশন থেকে লাইনগুলি সরিয়ে ফেলা হয়েছে তাতে কোডের পাঁচটি লাইন থাকা উচিত।
jawns317

0

আর

একটি সাধারণ সংস্করণ (আপনি 5 লাইনটি সরিয়ে ফেললে একটি ত্রুটি পাবেন বলে বোকা নন):

doit <- function() setdiff(1:5, c(
       1,
       2,
       3,
       4,
       5
    ))

এবং একটি নির্বোধ সংস্করণ:

doit<-function() setdiff(1:5, scan(text="
1
2
3
4
5
"))

এটি সরানো যেকোন সংখ্যক লাইনের সাথে কাজ করে (যদি আপনি সমস্ত লাইন সরিয়ে দেন তবে) এবং সহজেই 5 টিরও বেশি লাইনে প্রসারিত হতে পারে। এটি "যেমন আছে" চালানো ফিরে আসবে integer(0)যা ধারণার দিক থেকে ঠিক ফিরে আসার মতো similar0 । প্রকৃত 0 ফিরিয়ে দেওয়া এটিকে আরও খারাপ এবং দীর্ঘতর করে তুলবে তবে জটিল হবে না।

অবশেষে, যাদু ব্যবহার করে একটি সংস্করণ:

সহায়ক ফাংশন:

dysfunction <- function(E){
    FUN <- function(){}
    e <- substitute(E)
    e[[1]] <- as.name("list")
    nb <- quote(setdiff(as.list(1:5), x))
    nb[[3]] <- e
    body(FUN) <- nb
    FUN
    }

আসল ফাংশন:

df <- dysfunction({
1
2
3
4
5
})

0

সি ++

void function(int & i)
{
        i=i|1;
        i=i|2;
        i=(i|4);
        i=(i|8);
        i=(i|16);
} 


int[] func2(int i)
{
    int arr[]={0,0};
    int k=0,l=1;
    for(int j=1;j<=16;j*=2,l++)
    {
        if((i&j)==0)
        {
             arr[k++]=l;
        }
    }
    return arr;
}

কীভাবে ব্যবহার করবেন: আই দিয়ে ফাংশনটি কল করুন এবং ফাংশনটি কী বলছে তা বোঝার জন্য ফান 2 ব্যবহার করুন।

আপনি যদি লাইনটি int অ্যারে [] = {0,0} ইন্ট আরে পরিণত করেন [] = {0,0,0,0,0} এটি পাঁচটি লাইনের জন্যও কাজ করবে, এটি হ্যান্ডলাইনও একটি লাইন পরীক্ষার কেস সরান স্বয়ংক্রিয়ভাবে, আমি যা করছি তা হ'ল প্রতিটি লাইনের জন্য একটি ভেরিয়েবলের বিটগুলি পতাকা হিসাবে ....


না functionছয় লাইন, না পাঁচটি থাকার?
সেল স্কেগস

প্রত্যাবর্তন এর অংশ নয়, আপনি অন্যান্য উত্তরও দেখতে পারেন .... এটি ভাষা নির্ভরতা
zeeshan mughal

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

এখনই এটি পরীক্ষা করুন এবং আমাকে আপনার
প্রতিক্রিয়া জানান

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