একটি ফাংশন লিখুন [বন্ধ]


15

আমি সত্যই বিশ্বাস করতে পারি না যে এই চ্যালেঞ্জ ইতিমধ্যে বিদ্যমান নেই।

চ্যালেঞ্জ

একটি ফাংশন লিখুন।

নির্দিষ্টকরণ

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

    1. ফাংশনে ইনপুট alচ্ছিক এবং প্রয়োজনীয় নয়।

    2. ফাংশন থেকে একটি রিটার্ন মানও alচ্ছিক এবং প্রয়োজনীয় নয় তবে নিয়ন্ত্রণটি কলিং প্রোগ্রামে ফিরে আসতে হবে।

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

  • ফাংশনটির নামকরণের দরকার নেই।

  • ফাংশনটি আপনাকে তৈরি করতে হবে - আপনি কেবল ভাষা থেকে কোনও ভেরিয়েবলের জন্য একটি ডিফল্ট ফাংশন নির্ধারণ করতে পারবেন না।

  • দয়া করে কোনও মানক ফাঁক নেই

এটি , তাই বাইট জিতে সর্বনিম্ন স্কোর।


মন্তব্যগুলি বর্ধিত আলোচনার জন্য নয়; এই কথোপকথন হয়েছে চ্যাটে সরানো
জেমস

3
এটি কেন প্রথম দিকে বন্ধ হওয়ার কারণগুলির কোনওটিরই মুখোমুখি করা হয়নি, কেন এটি আবার খোলা হয়েছিল তা আমি বুঝতে পারি না, কেবল একটি চ্যাটে মোডগুলি লুকিয়ে রেখেছি
জো কিং

2
এছাড়াও, আপনি কখন থেকে নিজের পোস্টটি আবার খুলতে ভোট দিতে পারবেন ??
জো কিং

7
এই চ্যালেঞ্জটিতে প্রতিযোগিতা করার জন্য আপনাকে প্রোগ্রামারের চেয়ে আইনজীবী হওয়া দরকার।
অ্যানাটলিগ

2
এটি অবশ্যই বর্তমান অবস্থায় পুনরায় খোলা উচিত হয়নি।
মেগো

উত্তর:


30

x86 / x64 মেশিন কোড, 1 বাইট

c3

এসেম্বলি:

ret

এটি অনলাইন চেষ্টা করুন! (Nasm)

¯ \: _ (ツ): _ / ¯


2
তবে এটি ফাংশনটির কোনও নাম দেয় না বা ভেরিয়েবলের মধ্যে ফাংশনটির কোনও রেফারেন্স সঞ্চয় করে না।
ট্যানার সোয়েট

4
@ ট্যাননারস্বট এটি ঠিকানার মাধ্যমে বলা যেতে পারে।
নেতিবাচক সাত

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

21

জেলি , 0 বাইট

এটি অনলাইন চেষ্টা করুন!

একটি যুক্তরাজ্য লিঙ্ক যা তার যুক্তিটি ফিরিয়ে দেয়। যেহেতু এটি স্ক্রিপ্টে প্রদর্শিত প্রথম ফাংশন, তাই এটি ব্যবহার করে বলা যেতে পারে1Ŀ

জেলিতে 0 বাইট লিঙ্ক / ফাংশন কাজ করবে তা নির্দেশ করার জন্য @ লিরিটোসিস্টকে ধন্যবাদ জানাই।

অর্থাত


3,4,5 1Ŀ

এটি অনলাইন চেষ্টা করুন!


0 বাইট উত্তর কাজ করা উচিত।
lirtosiast

@ কেভিন ক্রুজসেন হ্যাঁ! ভাল জায়গা
নিক কেনেডি

@ নিক কেনেডি আপনি <pre><code>...</code></pre>কোড-ব্লকে শীর্ষস্থানীয় / পিছনের স্থান / নিউলাইন সংরক্ষণের জন্য ব্যবহার করতে পারেন । আমি আপনার উত্তর অনুসারে সম্পাদনা করেছি। :)
কেভিন ক্রুইজসেন

@ কেভিন ক্রুজসেন ধন্যবাদ!
নিক কেনেডি

জেলি সম্পর্কে আমার জ্ঞানটি বেশ পাতলা তবে লিঙ্কটি শেষ করতে আপনার কি নতুন লাইনের দরকার নেই? এটি উদাহরণে ব্যবহৃত হবে বলে মনে হয়।
পোস্ট রক গার্ফ হান্টার

13

জাভাস্ক্রিপ্ট, 6 বাইট

f=_=>0

ভেরিয়েবল অ্যাসাইনমেন্ট অন্তর্ভুক্ত। এখানে দেখতে অনেক না।


28
এটি আরও ইমোজি-মতো দেখতে তৈরি করতে:o=_=>o
দানিল তুতুবালিন

3
আর একটি ইমোজিd=_=>b
tsh

3
@tsh, হায়, bএই ক্ষেত্রে সংজ্ঞায়িত করা হয় না।
ড্যানিল তুতুবালিন

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

2
@ ডানিলতুতুবালিন তবে আপনি যদি এটি প্রার্থনা করেন তবে এটি কেবলমাত্র গুরুত্বপূর্ণ। এবং কোন ব্যতিক্রম ছুঁড়ে চালানো উচিত কিনা ফাংশন সম্পর্কে এই জাতীয় প্রয়োজন নেই।
tsh


8

জেডএক্স স্পেকট্রাম বেসিক, 6 বাইট

DEF FN f()=PI

হেক্স ডাম্প: CE 66 28 29 3D A7CEএকটি 1 বাইট শব্দ জন্য DEF FNযখন, (অবশ্য শেষে স্থান সহ) A7এর জন্য একটি 1 বাইট শব্দ হয় PI। কল করে কল করুন FN f()। উদাহরণ প্রোগ্রাম:

  10 PRINT FN f(): DEF FN f()=PI

আউটপুট:

3.1415927

8

হাস্কেল , 3 বাইট

o=9

এই কোডটি একটি oপলিমারফিক ফাংশন সংজ্ঞায়িত করে যা এক ধরণের পরামিতি এবং একটি টাইপক্লাস উদাহরণ প্যারামিটার নেয়। যখন এই ফাংশনটি ডাকা হয়, এটি প্রদত্ত টাইপক্লাস উদাহরণ গ্রহণ করে, তার fromIntegerসদস্য হয়, Integer9 সদস্যের জন্য সেই সদস্যকে কল করে এবং ফলাফলটি প্রদান করে।

মঞ্জুর, আমি কেবল যা বর্ণনা করেছি তা হ্যাস্কেল ফাংশনের আচরণ 9এবং আমার কোডটি কেবল একটি ফাংশন সংজ্ঞায়িত করে oযা সমতুল্য9

এখন একটাই প্রশ্ন 9, "আপনার দ্বারা নির্মিত" ফাংশনটি নাকি এটি "ভাষা থেকে একটি ডিফল্ট ফাংশন"?

আমি মনে করি এটি "আপনার দ্বারা নির্মিত"। আমার এটি বলার কারণ হ'ল আপনি যদি হ্যাস্কেলের স্পেসিফিকেশনটি পড়েন তবে আপনি (আমি ধরে নেব) 9কোথাও কোনও অনুষ্ঠানের উল্লেখ খুঁজে পাবেন না । পরিবর্তে, স্পেসিফিকেশনটিতে বলা হয়েছে যে আপনি এক বা একাধিক সংখ্যাকে একসাথে স্ট্রিং করে একটি সংখ্যা আক্ষরিক তৈরি করতে পারেন। অতএব, অঙ্কগুলির একটি স্ট্রিং লিখে আমি একটি ফাংশন লিখেছি just এমনকি যদি আমি কেবলমাত্র একটি অঙ্ক ব্যবহার করি।


চতুর, ধরণের স্তর ফাংশন
মেগা ম্যান

8

আর , 9 বাইট

body(t)=0

এটি অনলাইন চেষ্টা করুন!

আমি মনে করি এটি নিয়ম মেনে চলে। ফাংশনটি tকোনও ইনপুট এবং আউটপুট নেয় না 0। এটি কাজ করে কারণ সেখানে ইতিমধ্যে একটি ফাংশন রয়েছে t(ট্রান্সপজিশন ফাংশন) এবং এটি ফাংশনটির দেহকে নতুন সংজ্ঞা দেয়; এটি বলার সাথে কাজ করবে না body(a)=0(কোনও বস্তু বলা হবে না a) বা body(F)=0( Fএকটি যৌক্তিক, কোনও ফাংশন নয়)। আমি মনে করি এটি মেনে চলে কারণ এটি এখনও আমার দ্বারা নির্মিত হয়েছে: প্রাক-সংজ্ঞায়িত ফাংশনটি কেবল তার নামটি করে যা আমি পুনরায় ব্যবহার করছি না।

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

আরও একটি স্ট্যান্ডার্ড সমাধান হ'ল:

আর , 13 বাইট

f=function()0

এটি অনলাইন চেষ্টা করুন!

ফাংশন যা কোনও ইনপুট এবং আউটপুট নেয় না 0। এটি ফাংশনটির চেয়ে 1 বাইট ছোট, যা কোনও ইনপুট নেয় না এবং কিছুই দেয় না, যা হবে

f=function(){}

যদি আমরা কোনও দেহবিহীন কোনও ক্রিয়া সংজ্ঞায়িত করার চেষ্টা করি (f=function() , আর এটিকে অসম্পূর্ণ কমান্ড হিসাবে ব্যাখ্যা করে (এটি আর এর পুরানো সংস্করণে সত্য নাও হতে পারে)।

ওগানএম দ্বারা নির্দেশিত হিসাবে, আমরা এটিকে 11 বাইটে নামিয়ে নিই

আর , 11 বাইট

function()0

এটি অনলাইন চেষ্টা করুন!

যা প্রযুক্তিগতভাবে চ্যালেঞ্জের প্রয়োজনীয়তার সাথে সম্মতি জানায় যে ফাংশনটি কিছু ধরণের পরিবর্তনশীলকে বরাদ্দ করা হবে, যেহেতু এটি (আক্ষেপকালীন) নির্ধারিত হয়েছে .Last.value


1
function()0আপনার দ্বিতীয় উত্তরের জন্য কাজ করা উচিত কারণ ফাংশনটির নামকরণের প্রয়োজন নেই। ঝরঝরে কৌশল body<-, আমি ব্যবহার করার চেষ্টা করেছি bodyএবং ভাষার সাথে জড়িত হওয়ার জন্য কিছু অদ্ভুত চ্যালেঞ্জগুলি করতে চাই
জিউসেপ

1
@ জিউসেপ "ফাংশনটি অবশ্যই কিছু প্রকারের ভেরিয়েবলের জন্য বরাদ্দ করা উচিত", তাই আমি মনে করি না যে function()0এই চ্যালেঞ্জের বিধিগুলি মেনে চলে। body()="সফলভাবে কৌশলটি ব্যবহার করে এমন কোনও উত্তরে আমি অনুগ্রহ করে খুশি হব ।
রবিন রাইডার

4
function()0.Last.value()যদিও এটি চাপ দিচ্ছে তা নির্ধারিত হবে
ওগানএম

@ ওগানএম চমৎকার পয়েন্ট!
রবিন রাইডার

pryr::f(x)যদি আমরা pryr অনুমতি দেয়।
qwr


6

সি (জিসিসি) , 5 বাইট

fএমন কোনও ফাংশন সংজ্ঞায়িত করে যা কোনও আর্গুমেন্ট নেয় না এবং প্রযুক্তিগতভাবে একটি সংজ্ঞায়িত পূর্ণসংখ্যার মানটি দেয়।

f(){}

এটি অনলাইন চেষ্টা করুন!


1
"কোন যুক্তি লাগে না" - খারাপভাবে মিথ্যা বলে। সি সম্পর্কে এটি একটি সাধারণ ভুল বোঝাবুঝির মধ্যে একটি: খালি যুক্তি তালিকার অর্থ অ্যাক্সেসের পোর্টেবল উপায় ছাড়াই অপরিজ্ঞাত পরিমাণের অপরিজ্ঞাত পরিমাণ আর্গুমেন্ট। সিডনোট হিসাবে এটি সি / সি ++ বেমানান।
বলছেন মনিকা পুনরায়


6

[ওল্ফ্রাম ল্যাঙ্গুয়েজ (ম্যাথমেটিকা)], 1 বাইট

এটি একটি সামান্য প্রশ্নবিদ্ধ:

f

সংজ্ঞা দেয় f, যাকে "বলা যেতে পারে" উদাহরণস্বরূপ f[], যা এক্সপ্রেশনটিকে "রিটার্ন" করেf[]


1
আরে, এটি বলা যেতে পারে, এবং ফেরতের মান alচ্ছিক। এই গণনা।
কানেক্টইউরচার্জার

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

@Roman আমি শূন্য বাইট সংস্করণ যোগ বিবেচনা করেছি, কিন্তু শেষে আমি অনুভব করলাম যে আরও বেশি সন্দেহজনক মত: এই আসলে প্রতীক সৃষ্টি Global`f, যখন খালি সংস্করণ করে না যে (আপনি তর্ক হতে পারে Nullনির্ধারিত হয় %1, কিন্তু Nullহয় একটি অন্তর্নির্মিত "ফাংশন")। তবে আমি উত্তরে উল্লেখ করেছি যে, এক বাইট সমাধান কার্যকর কিনা তাও পুরোপুরি পরিষ্কার নয় ...
লুকাস ল্যাং


5

লুয়া , 8 বাইট

f=load''

এটি অনলাইন চেষ্টা করুন!

একটি (গ্লোবাল) ফাংশন সংজ্ঞায়িত করে f

এটি loadপ্রদত্ত স্ট্রিং সংকলন করতে লুয়া ফাংশনটি ব্যবহার করে যা আমাদের ক্ষেত্রে খালি হতে পারে (খালি কোডটি বৈধ কোড) যা আমাদের দেহে যা লিখেছিল ঠিক তেমন করে।

যারা ভাবছেন তাদের জন্য, স্ট্যান্ডার্ড সমাধান হবে

function f()end

তবে এটি দীর্ঘ (15 বাইট)।


5

পসিক্স শ, 6 বাইট

s()(1)

কোঁকড়া ধনুর্বন্ধনী ব্যবহার করার জন্য আরও একটি চরিত্রের প্রয়োজন।


5

জাভা, 10 বাইট

এটি চ্যালেঞ্জের নিয়মের সাথে মেলে

void f(){}

1
আমি বেশ নিশ্চিত f=a->a;যে বৈধ। :)
কেভিন ক্রুইজসেন

@ কেভিন ক্রুইজসেন আমি কোন জাভা বিশেষজ্ঞ নই এবং আমি কখনই জাভা অ্যারে চিহ্নিতকরণ ব্যবহার করিনি। আমি কীভাবে আপনার সমাধানটি সংকলিত করতে পারি? আমি প্রাথমিকভাবে এই টিআইওতে আমার পদ্ধতিটি "পরীক্ষিত" করেছি এবং তারপরে সেখানে আপনার পদ্ধতির সংযোজন করেছি। এখন, সংকলকটি একটি সনাক্তকারীকে প্রত্যাশা করে। আমার কোন ব্যাখ্যা বা ভুল ব্যবহার?
pixma140

2
এটি একটি জাভা 8+ ল্যাম্বদা ফাংশন। সুতরাং এই দু'জনের যে কেউই এই ক্ষেত্রে কাজ করবে। আপনি যদি এখনও তাদের সাথে পরিচিত না হন তবে জাভা 8+ ল্যাম্বডাসের গভীরতার আরও বিশদ এখানে
কেভিন ক্রুইজসেন




4

সি (জিসিসি) , 14 13 বাইট

(*f)()=L"Ã";

এটি অনলাইন চেষ্টা করুন!

এটি পরামিতিগুলির একটি অনির্দিষ্ট নম্বর (এবং প্রকার) fপ্রত্যাবর্তন intএবং গ্রহণ করার জন্য একটি ফাংশন সংজ্ঞায়িত করে , মেশিন কোডটির স্ট্রিং আক্ষরিক মধ্যে রয়েছে। ইউনিকোড অক্ষর Ã( 0xc3 0x00 0x00 0x00একটু এন্ডিয়ান মেশিনের মতো স্মৃতিতে সঞ্চিত ) x86 এর সাথে মিলে যায়ret ফাংশন থেকে ফিরে আসা নির্দেশের সাথে মিলে যায়। এক্স x86 আর্কিটেকচারের ফিরে আসতে বিভিন্ন অপকড (গুলি) লাগতে পারে।

gcc-zexecstackসেগফল্ট এড়াতে পতাকাটির প্রয়োজন হতে পারে।



3

Tcl , 6 5 11 বাইট

set f {_ ;}

এটি অনলাইন চেষ্টা করুন!

নিয়ম মেনে চলার জন্য বাইট্যাক্টের অংশ হিসাবে ভেরিয়েবল এফের সাথে অ্যাসাইনমেন্ট সহ। এই পরিবর্তনের সাথে, নীচের আরও প্রচলিত সংজ্ঞা বাইটোক্যান্টের জন্য উপরের একটিটিকে সংযুক্ত করে:

proc f _ {}

এটি কি একটি নামকৃত ফাংশন? ফাংশনটি অবশ্যই কোনও ধরণের ভেরিয়েবলের জন্য বরাদ্দ করা উচিত যাতে পরবর্তী সময়ে অ্যাক্সেস করা সম্ভব হয়।
mbomb007

@ mbomb007 আমি আপনার বক্তব্যটি দেখেছি এবং সে অনুযায়ী এটি ঠিক করেছি
স্মাইলঅ্যান্ড নড

3

এক্সএসএলটি, 134 বাইট

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template name="a"></xsl:template></xsl:stylesheet>

একটি টেম্পলেট হ'ল এই ভাষার কোনও ফাংশনের নিকটতম জিনিস। এটি অবশ্যই বলা যেতে পারে; এটি শূন্য আর্গুমেন্ট নেয় এবং খালি স্ট্রিংটিকে "রিটার্ন" দেয়।




3

আপনি কি কেবল def f():0একটি বাইট সংরক্ষণ করতে পারবেন না ?
এডিগার্ড

@ এডজিনার্ড ডেটা আমার আগে সেই কোডটি দিয়ে উত্তর দিয়েছে, এবং আমি এটি অনুলিপি করতে চাই না
U10-ফরওয়ার্ড

ওহ ঠিক আছে, কিছু মনে করবেন না
এডিগার্ড




2

স্মাইলব্যাসিক (> = 3), 9 বাইট

DEF A
END

ফাংশন দ্বারা ডাকা হয় A


বিকল্পভাবে DEF A*ENDএসবি 4
12

2

ওল্ফ্রাম ল্যাঙ্গুয়েজ (গণিত) , 2 বাইট by

#&

এটি অনলাইন চেষ্টা করুন!

দুর্ভাগ্যক্রমে, শুধু &কাজ করে না (একটি বেনাম ফাংশন যা কিছুই করে না)।


আপনাকে নিয়ম অনুসারে ফাংশনটি ভেরিয়েবলে সংরক্ষণ করতে হবে, যেমনf=#&
লুকাস ল্যাং

@ লুকাসল্যাং এটি স্বয়ংক্রিয়ভাবে সংরক্ষিত হয়েছে %1যাতে ভেরিয়েবলের মতো সুস্পষ্ট নিয়োগের প্রয়োজন নেই f
রোমান

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