Cerca di scrivere del codice nella tua lingua e di non soddisfare più i nostri criteri di linguaggio di programmazione .
Un linguaggio soddisfa i nostri criteri (versione semplificata per questa sfida) di essere un linguaggio di programmazione se:
- Può in qualche modo leggere l'input dell'utente che rappresenta tuple di numeri interi positivi.
- Può produrre almeno due diversi risultati possibili a seconda dell'ingresso.
- Può richiedere due numeri interi positivi e aggiungerli (e il risultato può influire sull'output).
- Può prendere un numero intero positivo e decidere se si tratta di un numero primo (e il risultato può influire sull'output).
- Ai fini di questa sfida, viene ignorato qualsiasi tipo di output che non sia un metodo di output consentito per una sfida normale . Quindi non importa se il programma può anche riprodurre un brano musicale o postare tramite HTTP, ecc.
- Aggiornamento: è inoltre possibile scegliere uno o alcuni dei metodi di output consentiti e ignorare tutti gli altri. Ma devi usare la stessa definizione ovunque nei seguenti criteri. E se il tuo programma può disabilitare più di un metodo di output, vale più voti.
Esempi come renderlo non in grado di produrre output o disabilitare tutti i costrutti di loop in modo che non sia in grado di eseguire test di primalità e assicurarsi che l'utente non possa riattivarli.
Dovresti lasciare un posto per inserire un nuovo codice. Per impostazione predefinita, è alla fine del codice. Se consideriamo di inserire il codice sorgente in quel punto nella tua risposta e di eseguire il codice completo come programma completo come interprete di una nuova lingua, quella lingua non dovrebbe soddisfare i criteri.
Ma il codice inserito deve essere eseguito in modo simile a un linguaggio che soddisfi i criteri:
- Il codice inserito deve essere grammaticalmente uguale a qualcosa (diciamo che è un blocco di codice nei seguenti criteri) che generalmente soddisfano i criteri, dal punto di vista di chiunque voglia scrivere un evidenziatore di sintassi. Quindi non può essere in una stringa, un commento, ecc.
- Il codice inserito deve essere effettivamente eseguito, in modo tale da soddisfare i criteri. Quindi non può essere in una funzione inutilizzata o
sizeof
in C, non è possibile eseguire solo una parte non funzionale nel codice e non è possibile inserirlo dopo un ciclo infinito, ecc. - Non è possibile limitare il numero di possibili programmi grammaticalmente corretti generati in questo modo. Se esiste già qualcosa come un limite di lunghezza nella lingua che stai utilizzando, non dovrebbe soddisfare i criteri anche se questo limite viene rimosso.
- Non è possibile modificare o "esaurire" il contenuto di input / output, ma è possibile impedirne l'accesso.
- Questi criteri di solito si applicano solo alle lingue senza I / O esplicito:
- Il tuo codice dovrebbe reindirizzare l'input dell'utente (che contiene informazioni di lunghezza arbitraria) al codice inserito, se un blocco di codice non è in genere in grado di ottenere l'input dell'utente direttamente / esplicitamente nella lingua che stai utilizzando.
- Il tuo codice dovrebbe stampare il valore restituito del codice inserito, se un blocco di codice non è in genere in grado di produrre oggetti direttamente / esplicitamente nella lingua che stai utilizzando.
- Nel caso in cui si stampi il valore restituito, ed è digitato nella lingua che si sta utilizzando, il tipo restituito dovrebbe essere in grado di avere 2 diversi valori praticamente possibili. Ad esempio, non è possibile utilizzare il tipo
struct {}
ostruct {private:int x;}
in C ++.
Questo è concorso di popolarità. La risposta valida più votata (quindi nessuno ha individuato un errore o tutti gli errori sono stati corretti) vince.
chiarimenti
- Non è necessario modificare il codice nel modulo di testo, ma è possibile modificare la sintassi prima che il codice venga interpretato o compilato.
- Puoi fare altre cose mentre il codice è in esecuzione. Ma il motivo per cui non soddisfa i criteri dovrebbe essere all'interno del codice inserito stesso. Può sbagliare a causa dell'interferenza di un altro thread, ma non può essere ucciso solo da un altro thread.
- Tutte le specifiche sostanzialmente indicano che dovrebbe essere grammaticalmente probabile che soddisfi i criteri se tutti gli built-in non sono stati modificati ma in realtà non lo fanno. Va bene se trovi soluzioni alternative non grammaticali, come passare correttamente i parametri al blocco di codice, ma rendili non utilizzabili in qualche modo.
- Ancora una volta, il codice inserito deve essere effettivamente eseguito. Il codice dopo un ciclo infinito o un arresto anomalo è considerato "non effettivamente eseguito", quindi non valido . Quelle risposte potrebbero essere interessanti, ma ci sono già alcune altre loop infiniti o domande che si arrestano in modo anomalo su questo sito e potresti trovarne una più appropriata per rispondere. In caso contrario, considera di porre una nuova domanda. Esempi di tali domande sono:
Classifica
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>