Спробуйте написати якийсь код своєю мовою та зробіть так, щоб він більше не відповідав нашим критеріям бути мовою програмування .
Мова відповідає нашим критеріям (спрощена версія для цього завдання) бути мовою програмування, якщо:
- Він може певним чином читати дані користувача, що представляють кортежі додатних цілих чисел.
- Він може виводити щонайменше два різні можливі результати залежно від введених даних.
- Це може взяти два натуральних числа і додати їх (і результат може вплинути на результат).
- Він може приймати додатне ціле число і вирішити, чи є простим (і результат може вплинути на результат).
- Для цього виклику ігнорується будь-який вид виводу, який не є дозволеним методом виводу для звичайного виклику . Тож не має значення, чи програма також може відтворювати музику або публікувати повідомлення через HTTP тощо.
- Оновлення: Ви також можете вибрати один або кілька дозволених методів виводу та проігнорувати всі інші. Але ви повинні використовувати одне і те ж визначення скрізь у наступних критеріях. І якщо ваша програма може вимкнути більше одного способу виведення - це вартує більше коштів.
Такі приклади, як неможливість виведення або відключення всіх конструкцій циклу, тому він не зможе зробити перевірку первинності і переконатися, що користувач не зможе їх повторно включити.
Вам слід залишити місце для вставки нового коду. За замовчуванням він знаходиться в кінці вашого коду. Якщо ми розглядаємо, як у своїй відповіді поставити вихідний код у цьому місці та запустити повний код як повну програму інтерпретатора нової мови, ця мова не повинна відповідати критеріям.
Але вставлений код повинен бути виконаний таким чином, як мова, що відповідає критеріям:
- Вставлений код повинен бути граматично таким же, як і щось (скажімо, це блок коду в наступних критеріях), які зазвичай відповідають критеріям, з точки зору того, хто хоче написати виділення синтаксису. Тому воно не може бути в рядку, коментарі тощо.
- Вставний код повинен бути фактично виконаний таким чином, щоб він відповідав критеріям. Отже, це не може бути у невикористаній функції або
sizeof
в C, ви не можете просто виконати лише нефункціональну частину коду, і ви не можете поставити її після нескінченного циклу тощо. - Ви не можете обмежити кількість можливих граматично правильних програм, створених таким чином. Якщо в мові, якою ви користуєтесь, вже є щось на зразок обмеження довжини, воно не повинно відповідати критеріям, навіть якщо ця межа буде знята.
- Ви не можете змінювати або "використовувати" вміст вводу / виводу, але ви можете запобігти їх доступу.
- Ці критерії зазвичай застосовуються лише до мов без явного вводу / виводу:
- Ваш код повинен перенаправляти вхід користувача (який містить інформацію довільної довжини) на вставлений код, якщо блок коду зазвичай не в змозі отримати введення користувача безпосередньо / явно на мові, яку ви використовуєте.
- Ваш код повинен надрукувати повернене значення вставленого коду, якщо блок коду зазвичай не в змозі виводити речі безпосередньо / явно на мові, яку ви використовуєте.
- У випадку, якщо ви друкуєте повернене значення, і воно вводиться мовою, якою ви користуєтесь, повернутий тип повинен мати можливість мати два різних практично можливих значення. Наприклад, ви не можете використовувати тип
struct {}
абоstruct {private:int x;}
C ++.
Це популярність-конкурс. Найбільше кількість голосів правильного відповіді (так що ніхто не помітив помилку або всі помилки виправляються) виграє.
Роз'яснення
- Ви не повинні змінювати код у текстовій формі, але можете змінити синтаксис до того, як код буде інтерпретований чи скомпільований.
- Ви можете робити інші речі, поки код працює. Але причина, що вона не відповідає критеріям, повинна бути в самому вставленому коді. Він може помилитися через інтерференцію іншої нитки, але не просто бути вбитим іншою ниткою.
- Всі характеристики в основному означають, що це має бути граматично ймовірно, що вони відповідають критеріям, якщо всі вбудовані модулі не були змінені, але насправді не виконані . Добре, якщо ви знайдете будь-які не граматичні способи вирішення, такі як правильне передавання параметрів до кодового блоку, але змушують їх не використовувати певним чином.
- Знову ж таки, вставлений код повинен бути фактично виконаний. Код після нескінченного циклу або збоїв вважається "фактично не виконаним", тому не є дійсним . Ці відповіді можуть бути цікавими, але на цьому веб-сайті вже є нескінченна петля або проблеми, і ви можете знайти більш відповідну відповідь. Якщо ні, то спробуйте задати нове запитання. Прикладами таких питань є:
Таблиця лідерів
var QUESTION_ID=61115/*,OVERRIDE_USER=8478*/;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,/*getComments()*/(more_answers?getAnswers():process())}})}/*function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}*/function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),score:s.score,language:a[1],lang:jQuery('<div>').html(a[1]).text(),link:s.share_link})}),e.sort(function(e,s){var r=e.score,a=s.score;return a-r});var s={},r=1,a=null,n=1;e.forEach(function(e){e.score!=a&&(n=r),a=e.score,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",e.n=n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.score).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text())/*,s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}*/});var t=e/*[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o])*/;t.sort(function(e,s){return (e.lang.toUpperCase()>s.lang.toUpperCase())-(e.lang.toUpperCase()<s.lang.toUpperCase())||(e.lang>s.lang)-(e.lang<s.lang)});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{PLACE}}",o.n).replace("{{LANGUAGE}}",o.language).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.score).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<(?:h\d|(?!.*<h\d>)p)>\s*((?:[^,;(\s]| +[^-,;(\s])+)(?=(?: *(?:[,;(]| -).*?)?\s*<\/(h\d|p)>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;float:left}table{width:250px}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="https://cdn.sstatic.net/Sites/codegolf/all.css?v=7509797c03ea"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Score</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Sorted by Language</h2> <table class="language-list"> <thead> <tr><td></td><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{PLACE}}</td><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>