La letra A sin A

69

Su tarea es mostrar la letra "A" sola, sin otra cosa, excepto cualquier forma de líneas finales si no puede evitarlas, haciéndolo en un programa y / o fragmento. El código que devuelve (en lugar de imprimir) está permitido.

Las versiones en minúscula y mayúscula de la letra "A" son aceptables (es decir, unicode U + 0061 o unicode U + 0041. Se permiten otras codificaciones de caracteres que no sean Unicode, pero de cualquier manera, la salida resultante de su código debe ser la letra latina "A", y no cualquier parecido u homoglifo)

Debe no utilizar cualquiera de los siguientes caracteres en el código, independientemente de la codificación de caracteres que usted escoja:

  • " A ", ya sea mayúscula o minúscula.

  • " U ", ya sea en minúsculas o mayúsculas.

  • X , ya sea mayúscula o minúscula.

  • +

  • Y

  • # #

  • 0 0

  • 1

  • 4 4

  • 5 5

  • 6 6

  • 7 7

  • 9

No se permiten trampas, lagunas, etc.

Como se trata de , la solución más corta, en bytes, que sigue todas las reglas, es la ganadora.


Comprobador de validez

Este fragmento de pila verifica para asegurarse de que su código no use los caracteres restringidos. Es posible que no funcione correctamente para algunas codificaciones de caracteres.

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

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

Este fragmento de pila que se asegura de que no tengas un personaje no permitido también está disponible en JSFiddle .

Tabla de clasificación

Buffer Over Read
fuente
77
@ColdGolf Parece que estás diciendo "sí" a las funciones, pero las funciones no se muestran, generalmente regresan.
xnor
2
¿Acabar con una variable que contiene atambién es lo suficientemente bueno?
Ton Hospel
1
Eso no es lo que quise decir. El supuesto código que realiza una asignación variable no contendría ninguno de los caracteres prohibidos. Solo estoy tratando de entender lo que está cubierto por "mostrar por medios distintos a la impresión". Si "regresar de una función" está bien, ¿qué pasa con "asignar a una variable"?
Ton Hospel
1
¿Por qué esos personajes en particular?
user253751
77
@immibis Apor razones obvias. Upara cadenas de escape Unicode ( \u0041es A), Xpara cadenas de escape hexadecimales ( \x41), +para ordinales Unicode ( U+0041), &para entidades HTML, #porque en realidad no sé, 65es el ordinal decimal de A, 41es el ordinal hexadecimal de A, 97es el ordinal decimal de a, y 0por algunas de las razones anteriores.
Mego

Respuestas:

86

Pluso, 1 byte

o

Página de Pluso Esolangs .

Pluso contiene un solo acumulador, que comienza con el valor 1. Utiliza dos comandos, p que incrementa el acumulador (mod 27), y o que imprime el valor actual como un carácter ASCII en mayúscula, AZ o espacio (donde 1-26 representa AZ respectivamente, y 0 representa el espacio).

Como el acumulador comienza en 1, el comando o sin previo p es la salida A .

cdw
fuente
14
Bienvenido a PPCG! Recomendaría poner la explicación en su respuesta, en caso de que el enlace muera por alguna razón.
TheBikingViking
Explicación agregada. Esperando la aprobación del moderador.
KPM
2
Gracias por la recomendación (y la bienvenida), he actualizado mi respuesta para incluir una breve explicación.
cdw
Acabo de votar para ponerte en 666 rep. Lo siento por eso.
Aidan F. Pierce
55
¿Esto no falla la prueba "es un esolang" porque no puede hacer la comprobación de primalidad?
Urna mágica del pulpo
155

Python 2, 14 bytes

print`3<3`[~3]

La expresión 3<3da el booleano False, y los backticks dan su representación de cadena 'False'. De aquí, queda por extraer la carta a. Python tiene un índice 0, por lo que aestá en el índice 1, que es un carácter prohibido. Se puede expresar como 3-2, pero hay una forma más corta. Python permite la indexación desde atrás, con índice -1para la última entrada, -2para la anterior, y así sucesivamente. Queremos índice -4, pero 4también es un número prohibido. Pero podemos expresarlo ~3usando el complemento de bits ~, que da -n-1por hecho ~n.

xnor
fuente
77
Esa es una solución realmente genial. Además, ¿no podrías hacer en [2]lugar de [~3]?
DJMcMayhem
66
@DJMcMayhem Desafortunadamente, tiene un índice 0, lo necesitaría [1].
xnor
44
... ¿por qué 1y 4'prohibido' números ??
Chris Cirefice
44
Las reglas del desafío lo dicen.
xnor
20
Ahora incluso estoy considerando usar "~ 0" como "primer elemento indexado desde cero desde atrás". Me pregunto por qué
usaríamos la
48

PHP, 9 6 bytes

<?=O^_^Q;

Para 9 bytes: inspirado en la respuesta de @Ton Hospel . Además, tiene el beneficio adicional de parecerse a un Kaomoji. :-)

La versión mejorada de 6 bytes:

<?=~¾;

en donde ¾ tiene el código hexadecimal de 0xBE (es importante guardar el archivo en codificación Latin-1 , no UTF-8!).

YetiCGN
fuente
Una versión alternativa es f^E^b.
Ismael Miguel
Sí, las soluciones de 9 bytes son abundantes. Comencé con y ^ '8' yx ^ '9', desafortunadamente los números tienen que ser convertidos a cadena o XOR el tipo resultante será un número entero.
YetiCGN
23
+1 para la cara^_^
Cyoce
La versión de 6 bytes no se imprime A. Se imprime =A.
UTF-8
1
Ahora sé la respuesta a este acertijo: en UTF-8 el punto de código de "fracción tres cuartos" está codificado como dos bytes: 0xC2 0xBE , 0xBE es lo mismo que en ISO-8859-1 . Me di cuenta de que cuando guardé esto en un archivo en mi caja de Linux, al que accedo a través de SSH con UTF-8, por supuesto, el archivo tiene 7 bytes . Entonces, guarde el script con codificación Latin-1 y será de 6 bytes y no generará el =carácter.
YetiCGN
42

05AB1E, 3 2 bytes

Th

Explicación

T   # push 10
 h  # convert to hex

Pruébalo en línea

Guardado 1 byte gracias a Adnan

Emigna
fuente
55
Thpor dos bytes :)
Adnan
1
@Adnan Oh, por supuesto. Hex :)
Emigna
32

brainfuck, 16 bytes

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

Esto se basa en el algoritmo brainfuck de Esolang para 159 .

Pruébalo en línea!

Dennis
fuente
3
Esto ... esto es magia.
Conor O'Brien
3
Esta solución usa la celda en el índice -1, que no es compatible con todos los intérpretes de brainfuck y podría provocar un bloqueo. Puede ejecutarlo aquí para ver fatiherikli.github.io/brainfuck-visualizer/…
Cody
37
@Cody En PPCG, los idiomas se definen por su implementación. Mientras haya un intérprete que se comporte como lo desee, es una solución válida.
Dennis
3
¿Qué tan difícil fue para ti evitar los personajes prohibidos?
Hagen von Eitzen el
1
@HagenvonEitzen Tuve que cavar un poco para encontrar un algoritmo que pudiera evitar +. (la forma más corta de imprimir A sería >+[+[<]>>+<+]>.), pero gracias a la lista de constantes en Esolang, no es demasiado difícil.
Dennis
30

JavaScript (ES6), 17 16 14 bytes

¡Ahorré dos bytes gracias a Neil!

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

Devuelve el segundo carácter de NaN, que es a.

Esto es lo más corto que se me ocurrió A, 43 42 bytes:

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

¿Quién dice que ser ofuscador no ayuda con el golf de código? ¡Yo no!

Explicaciones

El primero, en profundidad.

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

-_es NaN, porque _no está definido. Para obtener esto como una cadena, uno necesitaría uno de los siguientes:

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

El último es demasiado largo, y los primeros usos +. Entonces usamos el segundo. Ahora, el aestá en el índice 1. Esto no es bueno, porque 1está prohibido. Sin embargo, al ser una cadena de plantilla, podemos poner un espacio allí para que quede en el índice 2, dejándonos así ` ${-_}`.


El segundo, en profundidad.

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

Este fue un doozy.

_=>`                                `[-~8]

Este es el noveno carácter de la cadena de plantilla interna, que -~8es igual a 9. En este caso, esta cadena de plantilla es solo para la stringificación. Esta es la ecuación interna que se está stringificando, entre ${...}:

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

Vamos a ampliar esto un poco:

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

Esto obtiene la propiedad de una matriz vacía. Esta propiedad es, por supuesto, una cadena de plantilla, pero tiene algo de texto alrededor. Es más o menos equivalente a:`constr${${!""}[2]}ctor`

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

El interior es a su vez equivalente a:

(!_).toString()[2]

!_es true(porque _es undefinedy !undefined === true) y stringified es "true". Obtenemos el segundo carácter de la misma u; tenemos que hacerlo de esta manera para evitar poner explícitamente unuestro código.

Entonces, este bit interno es equivalente a:

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

Entonces estamos obteniendo el constructor de la matriz, la Arrayfunción. No pude dejar esto explícitamente porque contiene lo prohibido A. Ahora, stringificar la Arrayfunción rinde "function Array() { [native code] }".

Regresar al código original:

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

Esto es equivalente a, como hemos visto:

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

Equivalente a:

_=>Array.toString()[9]

Finalmente equivalente a:

_=>"A"
Conor O'Brien
fuente
1
@ColdGolf Está bien.
Conor O'Brien
2
¿Sería contrario a los principios de un ofuscador agregar una explicación ...? Tengo curiosidad acerca de cómo funciona esto.
Trichoplax
2
@trichoplax Supongo que no estaría de más revelar mis métodos aquí;) Agregué una explicación para ambos.
Conor O'Brien
1
@ OldBunny2800 No. aes un personaje prohibido y está dentro toUpperCase.
Conor O'Brien
3
Al principio pensé que era Perl.
Agradable
29

Hexagonía , 4 bytes.

Ayyy lmao? Bastante golfista para un idioma ajeno al golf jaja. Código:

B(;@

Pruébalo en línea!

Una forma más legible:

 B (
; @ .
 . .

Esto coloca el valor ASCII de la letra B, que es 66, en el borde de la memoria actual. Lo resta por uno usando (y lo imprime con ;. Después de eso, el programa se termina usando @.

Imagen de ruta obligatoria:

ingrese la descripción de la imagen aquí

Adnan
fuente
8
"más legible" + hexagonía = ???
No es que Charles el
18

Jalea , 3 bytes

ØWḢ

Pruébalo en línea!

Cómo funciona

ØWḢ  Main link. No arguments.

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

Jalea, 4 bytes

l-ṾṂ

Pruébalo en línea!

Cómo funciona

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'.
Dennis
fuente
1
Lástima que el segundo enfoque sea más largo. ._.
Dennis
66
Gracias por incluir el segundo enfoque. Es hermoso
trichoplax
18

En realidad , 2 bytes

úF

Pruébalo en línea!

Explicación:

úF
ú   lowercase English alphabet
 F  first element
Mego
fuente
eres el autor No he visto este idioma antes.
loa_in_
Lo he visto aparecer un par de veces en desafíos ahora. Creo que tiene el nombre más inteligente de cualquiera de los idiomas de golf en el sitio :-) He estado viendo Trajes últimamente y me parece muy Harvey.
corsiKa
17

CJam, 3 bytes

'@)

Pruébalo en línea!

Cómo funciona

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

Chicle , 1 byte

"

o

B

Todos parecían olvidar que existía ...

jimmy23013
fuente
Nunca he usado Bubblegum antes, así que quizás disculpe mi ignorancia, pero ¿dónde puedo encontrar los documentos para Bubblegum? Además, probé bubblegum.tryitonline.net con ambas respuestas, pero parece que no muestra nada.
Kevin Cruijssen
1
@KevinCruijssen Doc: esolangs.org/wiki/Bubblegum TIO parecía aceptar solo el hexdump del código fuente, así que inténtalo así: bubblegum.tryitonline.net/…
jimmy23013
Ah, ese es mi problema; No usar el hexdump. Gracias y +1 por ser el más corto con una respuesta de un solo byte (empatado con Pluso).
Kevin Cruijssen
@KevinCruijssen Hay una respuesta Pluso de 1 byte. Sin embargo, tiene algunos problemas con una regla de sitio extraña.
jimmy23013
10

Perl, 9 8 bytes

xor todavía está permitido, pero sayno lo está. Entonces, para 9 bytes:

print$/^K

Sin embargo, el uso de salida a STDERR da 8 bytes:

die~"\x9e\xf5"

Reemplazar \x9ey \xf5por sus versiones literales. O genere el archivo ejecutable usando:

perl -e 'printf q(die~"%s"),~"a\n"' > a.pl
Ton Hospel
fuente
@ColdGolf: Eso no está claro para mí. ¿Quiere decir que puedo usar say(contiene a) para imprimir siempre y cuando la construcción del argumento no use los caracteres prohibidos?
Ton Hospel
"Sin embargo, no debe usar ninguno de los siguientes caracteres en su código: * A, ya sea en mayúsculas o minúsculas". A partir de eso, lo haría print "No using the letter with code point 65";.
haykam
@ColdGolf ¿está destinado a responder la pregunta de alguna manera?
hobbs
10

> <> , 6 bytes

'|;o-$

esto crea una cadena de caracteres, rebota y lo vuelve a crear a la inversa, voltea los 2 elementos principales de la pila y resta: '|' (124) menos ';' (59) es 'A' (65)

Pruébalo en línea

torcado
fuente
2
¡Agradable! Obtuve lo '$-o;|que es casi lo mismo pero sin rebotar. ( |;o-$'también funciona.)
randomra
1
@randomra oh cierto! eso definitivamente funcionaría más rápido, tan buen trabajo
torcado
10

Ruby, 15 12 bytes

$><<to_s[-3]
Jordán
fuente
1
Puede guardar 2 bytes cambiando $><<a p , hacep to_s[-3]
Ephi
@Ephi precurre inspecta sus argumentos, por lo que se citará la salida, lo que lo descalificaría.
Jordania
Me perdí esa parte del desafío, dejaré esos comentarios porque creo que es una información interesante :)
Ephi
10

Java, 55 bytes

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

Como el código tiene que imprimirlo, se requiere uno de los dos escritores integrados. System.outes, bueno, fuera, porque contiene u. System.errfunciona, sin embargo.

El siguiente obstáculo es el manejo de Java de chary int. Dado que no está permitido emitir charporque contiene ay porque 'c' - 2se promociona a int, se requiere otro mecanismo. System.erres un PrintWriter, que tiene un write(char)método pero no write(int). Poner 'c' - 2allí lo obliga a no chartener un yeso.

Finalmente, cada vez que ejecuté el programa, el búfer System.errno se vació como se suponía, y el programa no imprimió nada. Así que tuve que enjuagarlo manualmente. Sin embargo, System.err.flush()no está permitido, así que lo llamé, lo println()que implícitamente vacía la corriente subyacente.


fuente
9

MATL, 5 bytes

YNVH)

Pruébalo en línea

Explicación

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

Mi respuesta original fue el enfoque recta hacia adelante usando el literal predefinido lY2que produce 'A'...'Z'y luego seleccionando el primer elemento, 'A'.

lY2l)
Suever
fuente
9

Javascript, 18 bytes 16 bytes 12 bytes 11 bytes

` ${!2}`[2]

Basado en modificados jsfuck básico (tenía que encontrar la manera de reemplazar +con -).

¿Ungolfed?

Bueno, al menos una versión con comentarios (tenga en cuenta que esta versión probablemente no se ejecutará):

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

Vieja solución:

`${![]}`[-(-!![])]
slebetman
fuente
Puede reemplazar el paréntesis con un espacio entre los signos menos.
PurkkaKoodari
@ Pietu1998: Me di cuenta de que 3se le permite por lo reemplazó todo el asunto con vieja y aburrida 3-2para obtener1
slebetman
Ahorré un byte gracias a la respuesta de Conor O'Brien
slebetman
1
No te ofendas, pero esta es mi respuesta. Excepto que usa falso en lugar de NaN y no usa una función.
Conor O'Brien
8

Vim, 16 13 11 10 pulsaciones de teclas

Gracias a H Walters por guardar dos llaves

¡Gracias a DJMcMayhem por salvar a otro!

: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
Limón Destructible
fuente
Muy buen enfoque!
YetiCGN
2
Ahorre 3 bytes; en lugar de :h<cr>intentarlo :h%<cr>. Ese es un personaje adicional, pero terminas en la ayuda %, con el cursor sobre una a. Entonces, desde aquí, puede reemplazar 33llcon j.
H Walters
Disculpas por errores tipográficos obvios (guardar 2 bytes)
H Walters
Puede usar en ZZlugar de :q<cr>guardar otro.
DJMcMayhem
8

R, 27 12 bytes

EDITAR: Nueva versión, de una excelente idea de @Jarko Dubbeldam

LETTERS[T*T]

¡Un desafío bastante divertido!

Básicamente, esto toma el 26thelemento del vector invertido que contiene las letras mayúsculas ( LETTERSque es un vector incorporado de R )

Versión anterior s (mismo número de bytes) :

L=LETTERS;rev(L)[length(L)]
rev((L=LETTERS))[length(L)]
Frédéric
fuente
1
Un poco tarde, pero puede ahorrar bastante LETTERS[T*T]. Tevalúa 1cuando se realizan operaciones numéricas.
JAD
¡Encontré una solución más corta!
Giuseppe
Esto no es técnicamente una solución --- imprime '[1] "a"', en lugar de solo 'a'
JDL
8

> <> , 7 4 bytes

Guardado 3 bytes gracias a Teal pelican

"-o.

Pruébalo en línea!

Explicación

"-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
Emigna
fuente
Lo hubiera hecho"B"1-o;
DanTheMan
@DanTheMan Esa debería haber sido la solución más obvia. Me pregunto por qué no pensé en eso: P
Emigna
@DanTheMan: - Apagando lo que Dan publicó, puede reducir esto aún más; "1-o; B o incluso mejor" + o; y, en cualquier caso, está permitido hacer estos 5 bytes :) - incluso puede hacerlo 4 bytes con un error; "-o.
Teal pelican
@ Tealpelican: ¡Eso es genial! El uso de cadenas suele ser más corto en desafíos como estos, pero ni siquiera lo consideré :)
Emigna
Una vez que vi el comentario de Dan, me recordó un desafío más antiguo como este, así que simplemente utilicé el mismo concepto :)
Teal pelican
7

Vim, 2 pulsaciones de teclas

vim -u NONEluego ejecute lo siguiente ( -u NONEdesactiva la personalización)

i<up>

Cuando vim se ejecuta en modo compatible, las teclas de flecha no se interpretan correctamente. <up>se interpreta <esc>OAque deja lo siguiente en modo de inserción. Lo cual se iría (con un par de nuevas líneas finales)

A

icomienza el modo de inserción.
<up>sale del modo de inserción, abre una línea arriba e ingresa A en el búfer

Ejemplo de personas que se encuentran con esto en la naturaleza. https://stackoverflow.com/questions/6987317/while-moving-the-cursor-across-a-vim-process-open-in-a-tmux-session-every-now-a/6988748#6988748

FDinoff
fuente
Me reí mientras lo leía. Este es un buen trabajo. Gran armamento de algo que sé, pero que no habría pensado.
udioica
6

Brainfuck, 192 19 bytes

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

Gracias a @NinjaBearMonkey por ayudarme a guardar bytes hella

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

No soy bueno en Brainfuck, así que estoy seguro de que hay una solución más corta, pero funciona disminuyendo por debajo de 0, girando el byte y continúa hasta que llegue a 'A', luego se imprime.

Cody
fuente
1
No es un competidor serio. Si realmente juega golf, el votante puede invertir su voto
Destructible Lemon
¿No sería mucho más corto contar hasta 65, incluso con 65 más?
NinjaBearMonkey
2
'+' no está permitido, así que tuve que retroceder
Cody
Lo siento, no vi eso. Sin embargo, todavía hay formas mucho más cortas de hacer 191 .
NinjaBearMonkey
2
Esa fue la solución de 192 bytes, simplemente la dejé e hice el tachado en lugar de eliminarla porque pensé que era divertido ir de 192 a 19
Cody
6

JavaScript (ES6), 21 bytes

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

Originalmente intenté convertir falsea cadena para hacer esto, pero me tomó 23 bytes en ese momento. Desde entonces se me ocurrió una forma más corta, que es esto para 14 bytes:

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

No creo que pueda obtener una mayúscula Abajo las reglas, ya que necesita una String.fromCharCodeo .toUpperCase()ambas, que contienen a.

Neil
fuente
Puede obtener mayúsculas usando JSF o una derivada usando propiedades calculadas
Downgoat
1
@Downgoat Conor O'Brien ya mostró cómo.
Neil
6

C, (19?) 24 bytes

Gracias a Dennis:

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

mismo largo:

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

que también permite minúsculas:

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

Hay una solución de 19 bytes como una función que modifica su parámetro, que tiene una falla:

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

//Usage:

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

Si cse declaró char, gmodifica el conjunto intpara que rompa la pila, lo que hace que se modifiquen otros valores o que el programa se cancele con un mensaje de error. La única manera de evitar es declarar int c;en maine imprimir con "%c", pero que se siente como un vacío.

soluciones antiguas

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 función, ya que mainestá prohibido.

Karl Napf
fuente
3
88-23debería guardar algunos bytes.
Dennis
Para minúsculas a, puede usar (333-33) / 3-3. No es tan corto como 'c'-2, pero es 3er. 33 * 3-2 también es posible.
rici
Si usa write () en lugar de printf, puede convertirlo en un programa; especifique los pasos de compilación para asegurarse de no vincular en absoluto a ninguna libc; si no hay _start, se salta al primer símbolo y se permite _exit para que sea seguro. Al menos una versión de gcc optimizará write () en la syscall directa sin ninguna llamada a la función.
Joshua
Dependiendo de su IDE, puede hacer algo como esto: printf("%c",~'ɦ');aunque la "A" tendrá una marca de acento agregada je
Albert Renshaw
@AlbertRenshaw ɦes un personaje de 2 bytes
Karl Napf el
6

dc, 4 bytes

833P

El desbordamiento UCHAR_MAX atraviesa la mesa seis tres veces antes de aterrizar a los 65.

brhfl
fuente
6

Lua, 36 bytes

Éste me llevó un tiempo ya que muchas de las funciones estándar de Lua son separados de las reglas (todos math, string.char, string.match, pairs, incluso next)

Esto aprovecha el hecho de que Lua tiene un global _VERSIONque generalmente comienza con "Lua" (p. Ej. Lua 5.1, O similar para otras versiones), por lo que a menos que se ejecute en un intérprete no convencional, el tercer carácter será una 'a'

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

El {...}[3]es agrupar los resultados de los findcuales también incluye los índices donde coincidió, y luego devolver el tercer elemento que es el carácter coincidente (el a)

PiGuy
fuente
1
print(({type{}:find".(.)"})[3]) 31 bytes
Egor Skriptunoff
6

Haskell, 10 bytes

Como una función (o más bien una declaración ya que no se requiere entrada)

f=pred 'B'

Hace el truco. Pruébalo en Ideone. Un programa completo es imposible ya que esto debería contener a main.

Laikoni
fuente
No creo que esto sea válido. La tarea requiere "imprimir" o "mostrar" A. Sus funciones simplemente lo devuelven y el programa vinculado lo muestra a través de putCharqué usos u.
nimi
Tienes razón, sin embargo, las reglas se han actualizado y ahora regresar de una función parece estar bien.
Laikoni
No, las reglas todavía dicen printy / o display.
nimi
2
Dennis preguntó explícitamente si regresar de una función en lugar de imprimir está bien y OP respondió que sí, pero la redacción actualizada de la pregunta aún no refleja esto. Supongo que todavía tenemos que esperar más aclaraciones.
Laikoni
1
El OP confirmó que Adebe imprimirse / mostrarse y no devolverse.
nimi
5

corriente continua, 8 7 bytes

-1B gracias a Dennis

88 23-P

Empuja 88, empuja 23, resta, dejando 65. Imprima la parte superior de la pila (65) como una cadena ASCII, sin línea nueva.

Editar:

Estas son algunas de las otras formas que se me ocurrieron. Básicamente se convirtió en un juego de "generar los números 65 y 97 usando solo [238B-F]y sin adición". Irónicamente, encuentro los más largos más interesantes.

_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
Joe
fuente