La lettera A senza A


69

Il tuo compito è quello di visualizzare la lettera "A" da sola, senza nient'altro, tranne qualsiasi forma di newline finale se non puoi evitarli, farlo in un programma e / o frammento. Il codice che restituisce (invece di stampare) è consentito.

Sono accettabili sia la versione minuscola che maiuscola della lettera "A" (ovvero unicode U + 0061 o unicode U + 0041. Sono consentite altre codifiche di caratteri che non sono Unicode, ma in entrambi i casi l'output risultante del codice deve essere la lettera latina "A" e non nessun sosia o omogeneo)

È necessario non utilizzare uno dei caratteri riportati di seguito nel codice, indipendentemente dalla codifica dei caratteri che si sceglie:

  • " A ", maiuscolo o minuscolo.

  • " U ", minuscola o maiuscola.

  • X , maiuscolo o minuscolo.

  • +

  • &

  • #

  • 0

  • 1

  • 4

  • 5

  • 6

  • 7

  • 9

Barare, scappatoie, ecc. Non sono ammessi.

Dato che si tratta di , la soluzione più breve, in byte, che segue tutte le regole, è il vincitore.


Validità Checker

Questo frammento di stack verifica che il codice non utilizzi i caratteri limitati. Potrebbe non funzionare correttamente per alcune codifiche di caratteri.

var t = prompt("Input your code.");

if (/[AaUuXx+&#0145679]/.test(t)) {
  alert("Contains a disallowed character!");
} else {
  alert("No disallowed characters");
}

Questo frammento di stack che ti assicura di non avere un carattere non consentito è disponibile anche su JSFiddle .

Classifica


7
@ColdGolf Sembra che tu stia dicendo "sì" alle funzioni, ma le funzioni non vengono visualizzate, di solito ritornano.
xnor

2
Sta finendo con una variabile che contiene aanche abbastanza buono?
Ton Hospel,

1
Non è quello che intendevo. Il presunto codice che fa un'assegnazione variabile non conterrebbe nessuno dei caratteri proibiti. Sto solo cercando di capire cosa è coperto da "display con mezzi diversi dalla stampa". Se "ritorno da una funzione" è OK, che dire di "assegnare a una variabile"?
Ton Hospel,

1
Perché quei personaggi particolari?
user253751

7
@immibis Aper ovvi motivi. Uper stringhe di escape Unicode ( \u0041is A), Xper stringhe di escape hex ( \x41), +per ordinali Unicode ( U+0041), &per entità HTML, #in realtà non lo so, 65è l'ordinale decimale di A, 41è l'ordinale esadecimale di A, 97è l'ordinale decimale di ae 0per alcuni dei motivi precedenti.
Mego

Risposte:


86

Pluso, 1 byte

o

Pluso Esolangs .

Pluso contiene un singolo accumulatore, che inizia con il valore 1. Utilizza due comandi, p che incrementa l'accumulatore (mod 27) e o che stampa il valore corrente come un carattere ASCII maiuscolo, AZ o spazio (dove 1-26 rappresenta AZ rispettivamente, e 0 rappresenta lo spazio).

L'accumulatore inizia con 1, il comando o senza precedente p volontà uscita A .


14
Benvenuti in PPCG! Vorrei raccomandare di inserire la spiegazione nella risposta, nel caso in cui il collegamento muoia per qualsiasi motivo.
TheBikingViking

Spiegazione aggiunta. In attesa dell'approvazione del moderatore.
KPM,

2
Grazie per la raccomandazione (e il benvenuto), ho aggiornato la mia risposta per includere una breve spiegazione.
cdw,

Ho appena votato per metterti al 666 rappresentante. Mi dispiace per quello.
Aidan F. Pierce,

5
Questo non fallisce il test "è un esolang" perché non può fare il controllo della primalità?
Magic Octopus Urn,

155

Python 2, 14 byte

print`3<3`[~3]

L'espressione 3<3dà il booleano Falsee i backtick danno la sua rappresentazione in forma di stringa 'False'. Da qui, resta da estrarre la lettera a. Python è indicizzato 0, quindi aè in indice 1, che è un carattere vietato. Può essere espresso come 3-2, ma c'è un modo più breve. Python consente l'indicizzazione dal retro, con l'indice -1per l'ultima voce, -2per quella precedente e così via. Vogliamo un indice -4, ma 4è anche un numero vietato. Ma, possiamo esprimere come ~3utilizzare il bit-complemento ~, che dà -n-1per ~n.


7
Questa è una soluzione davvero interessante . Inoltre, non potresti farlo [2]invece di [~3]?
DJMcMayhem

6
@DJMcMayhem Sfortunatamente è indicizzato 0, avrebbe bisogno [1].
xnor

4
... perché sono 1e 4'vietato' numeri ??
Chris Cirefice,

4
Le regole della sfida lo dicono.
xnor

20
Ora sto anche considerando di usare "~ 0" come "zero indicizzato primo elemento dal retro". Mi chiedo perché dovremmo usare la notazione "-1" in Python ....
PascalVKooten

66

Pyth, 2 byte

hG

Provatelo in Pyth compilatore .

Come funziona

 G  Yield the lowercase alphabet.
h   Extract the first character.

48

PHP, 9 6 byte

<?=O^_^Q;

Per 9 byte: ispirato alla risposta di @Ton Hospel . Inoltre, ha l'ulteriore vantaggio di sembrare un po 'un Kaomoji. :-)

La versione migliorata di 6 byte:

<?=~¾;

in cui ¾ ha il codice esadecimale di 0xBE (è importante salvare il file in codifica Latin-1 , non UTF-8!).


Una versione alternativa è f^E^b.
Ismael Miguel,

Sì, le soluzioni a 9 byte sono abbondanti. Ho iniziato con y ^ '8' e x ^ '9', sfortunatamente i numeri devono essere lanciati su stringa o XOR il tipo risultante sarà un numero intero.
YetiCGN,

23
+1 per il viso^_^
Cyoce,

La versione a 6 byte non viene stampata A. Esso stampa =A.
UTF-8

1
Ora conosco la risposta a questo indovinello: in UTF-8 il punto di codice "frazione di tre quarti" è codificato come due byte: 0xC2 0xBE , 0xBE uguale a ISO-8859-1 . Ho notato che quando l'ho salvato su un file sul mio Linux box, a cui accedo tramite SSH con UTF-8, ovviamente, il file è di 7 byte . Quindi, salva lo script con la codifica Latin-1 e sarà di 6 byte e non genererà il =carattere.
YetiCGN,


32

Brainfuck, 16 byte

-[-[---<]>>-]<-.

Questo si basa sull'algoritmo Brainfuck di Esolang per 159 .

Provalo online!


3
Questo .... questo è magia.
Conor O'Brien,

3
Questa soluzione utilizza la cella all'indice -1, che non è supportata da tutti gli interpreti brainfuck e provocherebbe un arresto anomalo. Puoi eseguirlo qui per vedere fatiherikli.github.io/brainfuck-visualizer/…
Cody

37
@Cody Su PPCG, le lingue sono definite dalla loro implementazione. Finché esiste un interprete che si comporta come desiderato, è una soluzione valida.
Dennis,

3
Quanto è stato difficile per te evitare i personaggi proibiti?
Hagen von Eitzen,

1
@HagenvonEitzen Ho dovuto scavare un po 'per trovare un algoritmo che potesse evitare +. (il modo più breve per stampare A sarebbe >+[+[<]>>+<+]>.), ma grazie all'elenco delle costanti su Esolang, non troppo difficile.
Dennis,

30

JavaScript (ES6), 17 16 14 byte

Due byte salvati grazie a Neil!

_=>` ${-_}`[2]

Restituisce il secondo carattere di NaN, che è a.

Questo è il più breve che potrei trovare A, per 43 42 byte:

_=>`${[][`constr${`${!_}`[2]}ctor`]}`[-~8]

Chi dice che essere un offuscatore non aiuta con il golf del codice? Io no!

spiegazioni

Il primo, in profondità.

_=>` ${-_}`[2]

-_è NaN, perché _non definito. Per ottenere questo come stringa, è necessario uno dei seguenti:

-_+""
`${-_}`
(-_).toString()

L'ultimo è troppo lungo e il primo usa +. Quindi usiamo il secondo. Ora, aè all'indice 1. Questo non va bene, perché 1è proibito. Tuttavia, essendo una stringa di modello, possiamo mettere uno spazio lì dentro per renderlo all'indice 2, lasciandoci così con ` ${-_}`.


Il secondo, in profondità.

_=>`${[][`constr${`${!_}`[2]}ctor`]}`[-~8]

Questo era un doozy.

_=>`                                `[-~8]

Questo è il nono carattere della stringa del modello interno, -~8pari a 9. In questo caso, questa stringa del modello è solo per la stringa. Questa è l'equazione interna che si sta stringendo, tra ${...}:

[][`constr${`${!_}`[2]}ctor`]

Espandiamolo un po ':

(new Array())[`constr${`${!_}`[2]}ctor`]

Questo ottiene la proprietà da un array vuoto. Questa proprietà è, ovviamente, una stringa di modello, ma contiene del testo. È approssimativamente equivalente a:`constr${${!""}[2]}ctor`

"constr" + `${!_}`[2] + "ctor"

L'interno è a sua volta equivalente a:

(!_).toString()[2]

!_è true(perché _è undefinede !undefined === true) e è rigoroso "true". Ne otteniamo il secondo personaggio u,; dobbiamo farlo in questo modo per evitare di inserire esplicitamente il unostro codice.

Quindi, questo bit interno equivale a:

"constr" + "u" + "ctor" === "constructor"

Quindi stiamo ottenendo il costruttore dell'Array, la Arrayfunzione. Non ho potuto dirlo esplicitamente perché contiene il proibito A. Ora, stringendo i Arrayrendimenti della funzione "function Array() { [native code] }".

Torna al codice originale:

_=>`${[][`constr${`${!_}`[2]}ctor`]}`[-~8]

Questo è equivalente a, come abbiamo visto:

_=>Array.toString()[-~8]

Equivalente a:

_=>Array.toString()[9]

Finalmente equivalente a:

_=>"A"

1
@ColdGolf Va bene.
Conor O'Brien,

2
Sarebbe contro i principi di un offuscatore aggiungere una spiegazione ...? Sono curioso di sapere come funziona.
trichoplax,

2
@trichoplax Suppongo che non farebbe male rivelare i miei metodi qui;) Ho aggiunto una spiegazione per entrambi.
Conor O'Brien,

1
@ OldBunny2800 No. aè un personaggio proibito ed è dentro toUpperCase.
Conor O'Brien,

3
All'inizio ho pensato che fosse Perl.
Auguroso

29

Esagonia , 4 byte

Ayyy Lmao? Abbastanza golfy per un linguaggio non golf haha. Codice:

B(;@

Provalo online!

Un modulo più leggibile:

 B (
; @ .
 . .

Questo mette il valore ASCII della lettera B, che è 66, sul bordo di memoria corrente. Lo sottrae da uno usando (e lo stampa con ;. Successivamente, il programma viene terminato utilizzando @.

Immagine del percorso obbligatorio:

inserisci qui la descrizione dell'immagine


8
"più leggibile" + hexagony = ???
Non quel Charles

18

Gelatina , 3 byte

ØWḢ

Provalo online!

Come funziona

ØWḢ  Main link. No arguments.

ØW   Yield "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_".
  Ḣ  Head; extract the first character.

Gelatina, 4 byte

l-ṾṂ

Provalo online!

Come funziona

l-ṾṂ  Main link. No arguments.

l-    Take the logarithm of 0 with base -1. Yields (nan+infj).
  Ṿ   Uneval; yield the string representation, i.e., "nanıinf".
   Ṃ  Take the minimum, returning 'a'.

1
Peccato che il secondo approccio sia più lungo. ._.
Dennis,

6
Grazie per aver incluso il secondo approccio. È bellissimo
trichoplax

18

In realtà , 2 byte

úF

Provalo online!

Spiegazione:

úF
ú   lowercase English alphabet
 F  first element

sei l'autore? Non ho mai visto questa lingua prima.
loa_in_

L'ho visto apparire un paio di volte nelle sfide ora. Penso che abbia il nome più intelligente di tutte le lingue del golf sul sito :-) Ultimamente ho guardato le tute e trovo che sia molto Harvey.
corsiKa

17

CJam, 3 byte

'@)

Provalo online!

Come funziona

'@   Push the character '@' on the stack.
  )  Increment its code point, yielding 'A'.

12

Bubblegum , 1 byte

"

o

B

Tutti sembravano dimenticare che esistesse ...


Mai usato Bubblegum prima, quindi forse scusa la mia ignoranza, ma dove posso trovare i documenti per Bubblegum? Inoltre, ho provato bubblegum.tryitonline.net con entrambe le tue risposte, ma non sembra produrre nulla.
Kevin Cruijssen,

1
@KevinCruijssen Doc: esolangs.org/wiki/Bubblegum TIO sembrava accettare solo il hexdump del codice sorgente, quindi provalo in questo modo: bubblegum.tryitonline.net/…
jimmy23013

Ah, questo è il mio problema; non usando il hexdump. Grazie e +1 per essere il più breve con una risposta a byte singolo (legata a Pluso).
Kevin Cruijssen,

@KevinCruijssen C'è una risposta Pluso da 1 byte. Ha alcuni problemi con una strana regola del sito, però.
jimmy23013,

10

Perl, 9 8 byte

xor è ancora consentito, ma saynon lo è. Quindi per 9 byte:

print$/^K

Tuttavia, l'utilizzo dell'output su STDERR fornisce 8 byte:

die~"\x9e\xf5"

Sostituisci \x9ee \xf5con le loro versioni letterali. O genera il file eseguibile usando:

perl -e 'printf q(die~"%s"),~"a\n"' > a.pl

@ColdGolf: Non è chiaro per me. Vuoi dire che posso usare say(contiene a) per la stampa purché la costruzione dell'argomento non usi i caratteri proibiti?
Ton Hospel,

"Tuttavia, non devi utilizzare nessuno dei seguenti caratteri nel codice: * A, maiuscolo o minuscolo." Da quello, lo farei print "No using the letter with code point 65";.
Hayakam,

@ColdGolf è pensato per rispondere alla domanda in qualche modo?
Hobbs

10

> <> , 6 byte

'|;o-$

questo crea una serie di caratteri, rimbalza e la crea nuovamente al contrario, capovolge i primi 2 oggetti dello stack e sottrae: '|' (124) meno ";" (59) è 'A' (65)

Provalo online


2
Bello! Ho ottenuto '$-o;|che è quasi lo stesso, ma senza il rimbalzo. ( |;o-$'funziona anche.)
randomra

1
@randomra oh true! sarebbe sicuramente più veloce, così bello lavoro
torcado

10

Rubino, 15 12 byte

$><<to_s[-3]

1
È possibile salvare 2 byte cambiando $><<in p , fap to_s[-3]
Ephi

@Ephi pchiama i inspectsuoi argomenti, quindi l'output verrà quotato, il che lo squalificherebbe.
Giordania,

Ho perso quella parte della sfida, lascerò quei commenti poiché penso che sia un'informazione interessante :)
Ephi

10

Java, 55 byte

void f(){System.err.write('c'-2);System.err.println();}

Poiché il codice deve stamparlo, è necessario uno dei due writer integrati. System.outè, beh, fuori, perché contiene u. System.errfunziona, comunque.

Il prossimo ostacolo è la gestione di Java di chare int. Poiché non è consentito eseguire il cast in charquanto contiene ae poiché 'c' - 2viene promosso int, è necessario un altro meccanismo. System.errè un PrintWriter, che ha un write(char)metodo ma non write(int). Mettendolo 'c' - 2lì lo costringe a charsenza un cast.

Alla fine, ogni volta che eseguivo il programma, il buffer System.errnon si scaricava come dovrebbe, e il programma non stampa nulla. Quindi ho dovuto sciacquarlo manualmente. Tuttavia, System.err.flush()non è consentito, quindi ho chiamato println()che scarica implicitamente il flusso sottostante.


9

MATL, 5 byte

YNVH)

Provalo online

Spiegazione

YN      % Creates a NaN value (not a number)
V       % Convert it to a string
H)      % Grab the second letter ('a')
        % Implicitly display the result

La mia risposta originale era l'approccio diretto usando il letterale predefinito lY2che produce 'A'...'Z'e quindi selezionando il primo elemento 'A'.

lY2l)

9

Javascript, 18 byte 16 byte 12 byte 11 byte

` ${!2}`[2]

Sulla base modificati jsfuck basi (dovuto capire come sostituire +con -).

Ungolfed?

Bene, almeno una versione con commenti (nota che questa versione probabilmente non funzionerà):

` ${      // whitespace to make "a" the third letter
  !2      // returns false
}`        // convert to string "false"
[2]       // index the third letter in " false" (note the whitespace)

Vecchia soluzione:

`${![]}`[-(-!![])]

È possibile sostituire la parentesi con uno spazio tra i segni meno.
PurkkaKoodari,

@ Pietu1998: ho notato che 3è consentito, quindi ho sostituito tutto con noioso vecchio 3-2da ottenere1
slebetman

Salvataggio di un byte grazie alla risposta di Conor O'Brien
slebetman,

1
Uh, senza offesa, ma questa è praticamente la mia risposta. Tranne che usi false invece di NaN e non usi una funzione.
Conor O'Brien,

8

Vim, 16 13 11 10 sequenze di tasti

Grazie a H Walters per aver salvato due chiavi

Grazie a DJMcMayhem per averne salvato un altro!

:h%<cr>jvyZZp
:h%<cr> #open help for percent
jvy     #move down one char (to the letter "a"), visual mode the character, yank
ZZ      #exit help for percent
p       #put yanked character

Approccio molto bello!
YetiCGN,

2
Salva 3 byte; invece di :h<cr>provare :h%<cr>. Questo è un personaggio in più, ma finisci in aiuto per %, con il cursore sopra una a. Quindi da qui puoi sostituirlo 33llcon j.
H Walters,

Ci scusiamo per un errore di battitura evidente (risparmia 2 byte)
H Walters,

Puoi usare ZZinvece di :q<cr>salvarne un altro.
DJMcMayhem

8

R, 27 12 byte

EDIT: nuova versione, da un'idea eccellente di @Jarko Dubbeldam

LETTERS[T*T]

Piuttosto una sfida divertente!

Fondamentalmente, questo prende l' 26thelemento del vettore invertito contenente le lettere maiuscole ( LETTERS, che è un vettore incorporato di una R )

Versione precedente s (stesso numero di byte) :

L=LETTERS;rev(L)[length(L)]
rev((L=LETTERS))[length(L)]

1
Un po 'in ritardo, ma puoi risparmiare un bel po' con LETTERS[T*T]. Tvaluta 1quando si eseguono operazioni numeriche.
JAD


Questa non è tecnicamente una soluzione --- stampa '[1] "a"', piuttosto che solo 'a'
JDL

8

> <> , 7 4 byte

Salvato 3 byte grazie al pellicano Teal

"-o.

Provalo online!

Spiegazione

"-o."   # pushes the string "-o."
-       # subtracts the charcode of o from the charcode of . (dot), 111-46=65
o       # prints as character
.       # tries to pop 2 coordinates to jump to, but as nothing is left on the stack
        # the program ends in an error

Avrei fatto"B"1-o;
DanTheMan il

@DanTheMan Sarebbe dovuta essere la soluzione più ovvia. Mi chiedo perché non ci abbia pensato: P
Emigna il

@DanTheMan: - Uscendo da ciò che Dan ha pubblicato puoi ridurlo ulteriormente a; "1-o; B o anche migliore" + o; & in entrambi i casi è consentito fare questo 5 byte :) - puoi persino farlo 4 byte con un errore; "-o.
Pellicano verde acqua

@Tealpelican: è geniale! L'uso delle stringhe è spesso il più breve nelle sfide come queste, ma non l'ho nemmeno considerato :)
Emigna,

Una volta che ho visto il commento di Dan mi ha ricordato una sfida più vecchia del genere, quindi ho usato lo stesso concetto :)
Pellicano

7

Vim, 2 sequenze di tasti

vim -u NONEquindi esegui quanto segue ( -u NONEdisattiva la personalizzazione)

i<up>

Quando vim viene eseguito in modalità compatibile, i tasti freccia non vengono interpretati correttamente. <up>viene interpretato il <esc>OAche lascia quanto segue in modalità inserimento. Che lascerebbe (con un paio di newline finali)

A

iavvia la modalità di inserimento.
<up>esce dalla modalità di inserimento, apre una riga sopra e inserisce A nel buffer

Esempio di persone che incontrano questo in natura. https://stackoverflow.com/questions/6987317/while-moving-the-cursor-across-a-vim-process-open-in-a-tmux-session-every-now-a/6988748#6988748


Ho riso mentre lo leggevo. Questo è un buon lavoro. Grande armamento di qualcosa che conosco, ma non ci avrei pensato.
udioica,

6

Brainfuck, 192 19 byte

----[>---<----]>--.

Grazie a @NinjaBearMonkey per avermi aiutato a salvare i byte hella

-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -----------------------------------------.

Non sono bravo con Brainfuck, quindi sono sicuro che esiste una soluzione più breve, ma funziona decrementando sotto 0, facendo rotolare il byte e continuando fino a quando non scende fino ad "A", quindi stampa.


1
non un serio concorrente. Se lo giochi davvero, il downvoter potrebbe invertire il suo voto
Limone distruttibile

Non sarebbe molto più breve contare fino a 65, anche con 65 punti?
NinjaBearMonkey

2
'+' non è permesso, quindi ho dovuto tornare indietro
Cody,

Scusa, non l'ho visto. Tuttavia, ci sono modi ancora più brevi per realizzare 191 .
NinjaBearMonkey

2
Quella era la soluzione a 192 byte, l'ho appena lasciata e ho barrato invece di cancellarla perché pensavo fosse divertente passare da 192 a 19
Cody

6

JavaScript (ES6), 21 byte

_=>(8^2).toString(22)

Inizialmente ho provato a convertire falsein stringa per farlo, ma in quel momento mi ci sono voluti 23 byte. Da allora ho escogitato un modo più breve, che è questo per 14 byte:

_=>`!${!2}`[2]

Non penso che tu possa ottenere maiuscole in Abase alle regole, dal momento che hai bisogno di una String.fromCharCodeo .toUpperCase()entrambe, che contengono a.


Puoi ottenere
lettere

1
@Downgoat Conor O'Brien ha già mostrato come.
Neil,

6

C, (19?) 24 byte

Grazie a Dennis:

f(){printf("%c",88-23);}

stessa lunghezza:

f(){printf("%c",'C'-2);}

che consente anche le lettere minuscole:

f(){printf("%c",'c'-2);}

Esiste una soluzione di 19 byte come funzione che modifica il suo parametro, che presenta un difetto:

g(int*p){*p='C'-2;}

//Usage:

main(){
  int c; //cannot be char
  g(&c);
  printf("%c\n",c);
}

Se è cstato dichiarato char, gmodifica il tutto in intmodo da distruggere lo stack causando la modifica di altri valori o l'interruzione del programma con un messaggio di errore. L'unico modo per aggirare è quello di dichiarare int c;in maine stampare con "%c", ma che si sente come una scappatoia.

soluzioni più vecchie

f(){printf("%c",'B'-2/2);} //26 bytes
f(i){i='B';printf("%c",--i);} //29 bytes
f(){int*i="B";int j[]={*i-(2/2),2-2};printf("%s",j);} //53 bytes

Solo una funzione, poiché mainè vietato.


3
88-23dovrebbe salvare qualche byte.
Dennis,

Per la minuscola a, è possibile utilizzare (333-33) / 3-3. Non è corto come 'c'-2, ma è 3er. 33 * 3-2 è anche possibile.
rici,

Se usi write () invece di printf puoi renderlo un programma; specifica i passaggi di compilazione per assicurarti di non collegarti affatto ad alcuna libc; se non è presente _start, viene saltato il primo simbolo e _exit è consentito, quindi è sicuro. Almeno una versione di gcc ottimizzerà write () nella syscall diretta senza alcuna chiamata di funzione.
Giosuè,

A seconda del tuo IDE puoi fare qualcosa del genere: printf("%c",~'ɦ');anche se la "A" avrà un accento aggiunto heh
Albert Renshaw,

@AlbertRenshaw ɦè un personaggio a 2 byte
Karl Napf,

6

dc, 4 byte

833P

L'overflow di UCHAR_MAX rotola attraverso la tabella sei tre volte prima di atterrare a 65.


6

Lua, 36 byte

Questo mi ha portato un po 'che molte delle funzioni standard Lua sono portati via dalle regole (tutti math, string.char, string.match, pairs, anche next)

Questo sfrutta il fatto che Lua ha un globale _VERSIONche di solito inizia con "Lua" (ad esempio, Lua 5.1o simile per altre versioni), quindi a meno che questo non sia eseguito su un interprete non tradizionale, il terzo personaggio sarà una "a"

print(({_VERSION:find("..(.)")})[3])

La {...}[3]è di raggruppare i risultati di findche include anche gli indici dove abbinato, e quindi tornare il terzo elemento che è il carattere corrispondente (la a)


1
print(({type{}:find".(.)"})[3]) 31 byte
Egor Skriptunoff,

6

Haskell, 10 byte

Come funzione (o piuttosto un'istruzione in quanto non è richiesto alcun input)

f=pred 'B'

fa il trucco. Provalo su Ideone. Un programma completo è impossibile in quanto ciò dovrebbe contenere a main.


Non penso sia valido. L'attività richiede di "stampare" o "visualizzare" A. Le tue funzioni lo restituiscono e il programma collegato lo visualizza tramite putCharquali usi u.
nimi,

Hai ragione, tuttavia le regole sono state aggiornate e ora il ritorno da una funzione sembra essere ok.
Laikoni,

No, le regole dicono ancora printe / o display.
nimi,

2
Dennis ha chiesto esplicitamente se il ritorno da una funzione anziché la stampa è corretto e OP ha risposto con sì, ma la formulazione della domanda successivamente aggiornata non riflette ancora questo. Immagino che dobbiamo ancora aspettare ulteriori chiarimenti.
Laikoni,

1
L'OP ha confermato che Adeve essere stampato / visualizzato e non restituito.
nimi,


5

dc, 8 7 byte

-1B grazie a Dennis

88 23-P

Spinge 88, spinge 23, sottrae, lasciando 65. Stampa la parte superiore dello stack (65) come una stringa ASCII, senza riga finale.

Modificare:

Questi sono alcuni degli altri modi in cui mi sono inventato. Fondamentalmente è diventato un gioco di "generare i numeri 65 e 97 usando solo [238B-F]e senza aggiunta". Ironia della sorte, trovo i più lunghi più interessanti.

_Fdd/r-oC 2-n  # involves changing the base
2_2/8d*3*2/-P
Idd2/2/-2*on   # also changes base
2d8r^r_2/-P
8d*2_2/-P
B 3d**2-P
33 3*2-P
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.