El objetivo de Rosetta Stone Challenge es escribir soluciones en tantos idiomas como sea posible. ¡Muestra tu programación multilingüismo!
El reto
Cuando las personas usan el término "promedio", generalmente se refieren a la media aritmética, que es la suma de los números divididos por el número de números. Sin embargo, hay muchos más significados para la palabra "media", incluyendo la media armónica , la media geométrica , la media aritmética , la media cuadrática y la media contraarmónica .
Su desafío es escribir un programa que ingrese una lista de números y genere esos 5 medios diferentes. Además, está intentando escribir programas en tantos idiomas como sea posible . Puede usar cualquier tipo de función de biblioteca estándar que tenga su idioma, ya que esto es principalmente un escaparate de idiomas.
Entrada
La entrada será una lista de números positivos.
1,2,3,4,5
1.7,17.3,3.14,24,2.718,1.618
8.6
3,123456
10.1381,29.8481,14.7754,9.3796,44.3052,22.2936,49.5572,4.5940,39.6013,0.9602
3,4,4,6.2,6.2,6.2
Salida
La salida será las cinco medias en el orden mencionado anteriormente (armónico, geométrico, aritmético, cuadrático, contraarmónico). Convenientemente, esto es lo mismo que aumentar el orden.
2.18978,2.6052,3,3.31662,3.66667
3.01183,4.62179,8.41267,12.2341,17.7915
8.6,8.6,8.6,8.6,8.6
5.99985,608.579,61729.5,87296.6,123453.
5.95799,14.3041,22.5453,27.9395,34.6243
4.5551,4.74682,4.93333,5.10425,5.28108
Habrá cierta indulgencia razonable en el formato de E / S, pero quiero varios decimales de precisión. Como quiero una salida de punto flotante, puede asumir la entrada de punto flotante.
El criterio objetivo ganador
En cuanto a un criterio ganador objetivo, aquí está: cada idioma es una competencia separada en cuanto a quién puede escribir la entrada más corta, pero el ganador general sería la persona que gana la mayoría de estas subcompeticiones. Esto significa que una persona que responde en muchos idiomas poco comunes puede obtener una ventaja. Code-golf es principalmente un desempate para cuando hay más de una solución en un idioma: la persona con el programa más corto obtiene crédito por ese idioma.
Si hay un empate, el ganador sería la persona con la mayor cantidad de envíos de segundo lugar (y así sucesivamente).
Reglas, restricciones y notas
Su programa se puede escribir en cualquier idioma que existiera antes del 2 de septiembre de 2014. También tendré que confiar en la comunidad para validar algunas respuestas escritas en algunos de los idiomas más infrecuentes / esotéricos, ya que es improbable que pueda probar ellos.
Mantenga todas sus presentaciones diferentes contenidas en una sola respuesta.
Además, no hay travesuras con básicamente la misma respuesta en dialectos de idiomas ligeramente diferentes. Seré el juez en cuanto a qué presentaciones son lo suficientemente diferentes.
Tabla de clasificación actual
Esta sección se actualizará periódicamente para mostrar la cantidad de idiomas y quién lidera cada uno.
- Algoid (337) - Decaimiento Beta
- APL (42) - algormshark
- Awk (78) - Dennis
- BBC BASIC (155) - Decaimiento Beta
- C (136) - Dennis
- C ++ (195) - Zeta
- C # (197) - Martin Büttner
- CJam (43) - Dennis
- Clojure (324) - Michael Easter
- Cobra (132) - Ourous
- CoffeeScript (155) - Martin Büttner
- Commodore BASIC (104) - Marca
- Lisp común (183) - DLosc
- Erlang (401) - Marca
- Fortran (242) - Kyle Kanos
- Fortran 77 (286) - Decaimiento Beta
- GNU bc (78) - Dennis
- GolfScript (83) - Dennis
- Groovy (157) - Michael Easter
- Haskell (140) - Zeta
- J (28) - algoritmos de tiburón
- Java (235) - Michael Easter
- JavaScript (ES6) (112) - Dennis
- JRuby (538) - Michael Easter
- Julia (79) - Martin Büttner
- Lua (113) - AndoDaan
- Mathematica (65) - Martin Büttner
- Matlab (63) - Martin Büttner
- Octava (68) - Dennis
- OpenScript (849?) - COTO
- Pascal (172) - Marca
- Perl (76) - Sucio
- PHP (135) - Dennis
- POV-Ray 3.7 (304) - Marca
- Prólogo (235) - DLosc
- Pyth (52) - Dennis
- Python 2 (96) - Dennis
- Python 3 (103) - DLosc
- Q (53) - algoritmos de tiburón
- Q'Nial (68) - Algoritmo de tiburón
- QBasic (96) - DLosc
- R (91) - plannapus
- Rubí (118) - Martin Büttner
- Óxido (469) - Vi.
- Scala (230) - Michael Pascua
- T-SQL (122) - MickyT
- TI-Basic (85) - Ypnypn
- TypeScript (393) - rink.attendant.6
- VBA (Excel) (387) - Estiramiento maniaco
- wxMaxima (134) - Kyle Kanos
Ranking de usuarios actuales
- Dennis (10)
- Martin Büttner (6)
- Michael Pascua (5)
- Mark, DLosc, algoritmos de tiburón (4)
- Decaimiento Beta (3)
- Zeta, Kyle Kanos (2)
- Ourous, AndoDaan, COTO, Grimy, plannapus, Vi., MickyT, Ypnypn, rink.attendant.6, Stretch Maniac (1)
(Si cometí un error en las clasificaciones anteriores, avíseme y lo arreglaré. Además, el desempate aún no se ha aplicado).
fuente
(a-b)/ln(a/b)
. Admito que solo hoy descubrí cómo se generaliza a un conjunto de muestra de más de dos :-) es.wikipedia.org/wiki/Logarithmic_meanbc
,awk
etc para ser "lenguas" o "comandos" - por lo que serían las diferentes maneras de implementar esto desde una cáscara de ser contado en diferentes idiomas?Respuestas:
Idiomas: 1
OpenScript (muchos cientos)
(Mi lenguaje de programación oscuro, oscuro y lamentablemente favorito, porque aprendí a programarlo hace muchos años.)
fuente
put the length of the inputs into n
? O_O Ya amo este idioma.Idiomas: 13
Creo que esta lista ahora debería contener todos los lenguajes de programación que conozco lo suficientemente bien como para resolver al menos problemas simples. Intentaré mantener esta lista completa con el tiempo a medida que busco nuevos lenguajes. ( Solía conocer Smalltalk y Delphi, pero tenía que mirar mucho para agregarlos para sentirme bien).
C,
196190171165 bytesLee la entrada como argumentos de línea de comandos individuales y escribe una lista separada por comas de los medios en STDOUT.
Gracias por algunas mejoras a Quentin.
C ++, 200 bytes
Esto es lo mismo que el código C anterior, más dos incluye. Incluyo esto porque es más largo que la presentación ganadora de C ++, así que supongo que no se hace daño, y me gustaría que esta publicación contenga todos los idiomas que conozco. :)
C #,
220197 bytesDefine una función en una clase que toma una
List
de dobles y devuelve una matriz de dobles con las cinco medias.Gracias por algunas mejoras en Visual Melon y Bob.
CJam, 52 bytes
Toma la entrada como argumentos de línea de comandos e imprime una lista con los cinco valores en STDOUT.
CoffeeScript, 155 bytes
Esto es casi lo mismo que la solución de JavaScript más abajo (e inicialmente no lo conté por esa razón), pero el OP lo incluyó en el marcador de todos modos, así que lo promoví a un envío completo. Ellos son técnicamente diferentes idiomas después de todo.
JavaScript (ES6),
155153 bytesDefine una función que toma una matriz de números y devuelve una matriz con las cinco medias.
Gracias por algunas mejoras a William Barbosa.
Julia, 79 bytes
Define una función que toma una lista de números y devuelve una lista con las cinco medias.
Lua, 120 bytes
Define una función que toma una lista de números y devuelve 5 valores separados para las medias.
Mathematica,
736765 bytesDefine una función que toma una lista de números de coma flotante y devuelve una lista con las cinco medias.
Dato curioso: Mathematica tiene los 5 medios incorporados (y ese fue mi envío original), pero tres de ellos se pueden implementar en menos caracteres que los nombres de sus funciones.
Matlab,
6563 bytesSolicita la entrada como una matriz de números del usuario y genera los cinco medios individualmente.
Gracias por algunas mejoras a Dennis Jaheruddin.
PHP ≥ 5,4,
152149143 bytesLa misma implementación funcional que las anteriores.
Gracias por algunas mejoras a Ismael Miguel.
Python 2, 127 bytes
La misma implementación funcional que las anteriores.
Rubí,
129118 bytesLa misma implementación funcional que las anteriores.
fuente
norm(l)/n^.5
en lugar denorm(l)/sqrt(n)
.4 idiomas
J -
3228 char!Una función que toma la lista de números como único argumento.
a
Aquí hay un adverbio, que es la toma de J de las funciones de segundo orden.+/ % #
es un tren en J, que significa suma dividida por conteo, la definición de la media aritmética.&.:
es una conjunción llamada Under, dondeu&.:v(y)
es equivalentevi(u(v(y)))
yvi
es el inverso funcional dev
. Sí, J puede tomar inversas funcionales .Por lo tanto,
a
toma una función a la izquierda y devuelve una media que "ajusta" los valores por la función, toma la media aritmética y luego invierte el ajuste.%a
es la media armónica, porque%
significa recíproco, y es su propio inverso.^.a
es la media geométrica, porque^.
es el logaritmo natural y su inverso es el exponencial.(Π x)^(1/n) = exp(Σ log(x)/n)
[a
es la media aritmética, porque[
es la función de identidad.*:a
es la media cuadrática, porque*:
es cuadrada, y su inversa es la raíz cuadrada.*:a
dividida por ([a
dividida por*:a
)). Esto se parece[a(]%%)*:a
. Mientras estamos en ello, que anteponer a cada uno de los medios,[a(,,]*%~)*:a
.Finalmente, usamos comas para agregar el resto de los resultados juntos. No necesitamos más parentes porque la concatenación es (en este caso al menos) asociativa.
En uso en la J REPL:
Q - 53 caracteres
Función de argumento único. Simplemente hacemos una lista de todos los medios que queremos.
Lo mismo en otras versiones de k está abajo.
{s:(a:avg)x*x;(%a@%x;exp a log x;a x;sqrt s;s%a x)}
{s:(a:{(+/x)%#x})x*x;(%a@%x;(*/x)^%#x;a x;s^.5;s%a x)}
APL - 42 char
Función que toma la lista como argumento.
Explicado por explosión:
Q'Nial - 68 char
Te va a encantar este.
Q'Nial es otro lenguaje orientado a arreglos, una implementación de Nial , que se basa en una oscura teoría de matrices de la misma manera que Haskell se basa en la teoría de categorías. (Consíguelo aquí .) Es muy diferente de cualquiera de los otros tres (¡se analiza de izquierda a derecha, en primer lugar!), Pero aún está más relacionado con ellos que con cualquier otro idioma.
fuente
/⍨
) Probablemente fue para portar código muy antiguo. ¿Que usas? Dyalog? NARS2000? Creo que es realmente lamentable que J haya adoptado el enfoque de ruido ASCII. La implementación de ese lenguaje es, por lo demás, una obra de genio. Pero no me molesto en analizar mentalmente]a(,,]*%~)*:a
[0.5]
? Ew.) Con la práctica, te acostumbras a tácito J, sin embargo. Se pone mucho peor que esto.12 idiomas
CJam,
454443 bytesLee una matriz de flotadores (por ejemplo,
[1.0 2.0 3.0 4.0 5.0]
) de STDIN. Pruébalo en línea.APL,
6761535250 bytesPruébalo en línea.
Pyth,
5552 bytesLee números separados por espacios (por ejemplo,
1 2 3 4 5
) de STDIN.Octava, 68 bytes
Sin contar el shebang. Lee una matriz (por ejemplo,
[1 2 3 4 5]
) de STDIN.GNU bc, 78 bytes
Contando el shebang como 1 byte (
-l
interruptor). Lee espacios flotantes separados por espacios en blanco de STDIN, seguidos de un cero.Awk, 78 bytes
Sin contar el shebang. Lee un número por línea de STDIN.
GolfScript,
8683 bytesGolfScript no tiene soporte incorporado para flotantes, por lo que el código los analiza. Por lo tanto, el formato de entrada es bastante restrictivo: debe ingresar
1.0
y en0.1
lugar de1
,1.
o.1
.Lee flotantes (como se explicó anteriormente) uno por línea, de STDIN. Pruébalo en línea.
Perl,
9085 bytesContando el shebang como 1 byte (
-n
interruptor). Lee un número por línea de STDIN.Python 2,
10296 bytesSin contar el shebang. Lee una lista de flotadores (por ejemplo,
1.0,2.0,3.0,4.0,5.0
) de STDIN.ECMAScript 6 (JavaScript),
114112 bytesSin contar el LF. Espera una matriz (por ejemplo,
[1,2,3,4,5]
) como argumento.PHP, 135 (¿o 108?) Bytes
Sin contar shebang o LF. Lee flota como argumentos de línea de comandos.
Tengo una solución más corta, pero no sé cómo contar los bytes:
Contando los bytes en cada cadena de código y agregando dos para
-R
y-E
, este enfoque obtendría 108.C,
172140139137136 bytesSin contar el LF. Compilar con
gcc -lm
. Lee espacios flotantes separados por espacios en blanco de STDIN.fuente
while(cond)...,n++;
vsfor(;cond;n++)...;
interpreter switches script
para cada envío. La convención es que las líneas shebang no se cuentan, a menos que contengan modificadores no predeterminados. Como se indicó en mi respuesta, he contado#!/usr/bin/awk -f
como cero bytes (-f
significa leer el programa del archivo), pero#!/usr/bin/perl -n
como un byte (-n
significa iterar sobre las líneas de entrada).-q
para Octave y-lm
para C?-q
es solo para salida silenciosa.-lm
es necesario por GCC. Otros compiladores pueden no requerirlo.J (50):
Este es el tipo de cosas en las que J es bueno:
Como siempre: una explosión en la fábrica de smiley. Sin embargo, algunas de las caritas quedaron intactas esta vez:
:)
y:*:
(ese es un chico con cuatro ojos y una gema incrustada en su rostro) Mi sesión interactiva que se utilizó para crear esto: http://pastebin.com/gk0ksn2bEn acción:
Explicación:
Como es de esperar, en realidad hay 5 funciones que se agrupan en una lista con un tren de horquillas y ganchos. (No se preocupe por eso, es solo una forma conveniente de hacer que múltiples funciones salgan a una sola lista).
Las líneas que usé para hacer que J generara esta respuesta podrían ser un poco más claras:
Echemos un vistazo por separado.
Armónico
#
- Longitud (de la matriz)%
- Dividido por+/@:%
- La suma (+/
o plegado+
en la matriz (+/1 2 3 4
==1+2+3+4
)) encima de dividir, pero esta vez en el caso monádico. Lo que esto significa aquí es que J automáticamente "adivina" que 1 sería el valor más útil.Geométrico
#
- Longitud (de la matriz)%:
- Raíz (4 %: 7
significaría 'la cuarta (o tesseract) raíz de siete)*/
- Producto (*/
es similar en significado a+/
, vea la función anterior para esto)Aritmética
+/
- suma, debería ser familiar ahora%
- dividido por#
- longitudMedia cuadrática
Ehm, si ...
%:
- La raíz de%@#
- El inverso de la longitud*
- Tiempos+/@:*:
- La suma de los cuadrados (*:
es cuadrado, aunque*~
también lo sea).Contraarmónico
+/@:*:
- La suma de los cuadrados.%
- dividido por+/
- la suma.Si J fuera tan bueno procesando cadenas, estaríamos ganando muchas más competencias de golf ...
fuente
Idiomas: 5
POV-Ray 3.7 Lenguaje de descripción de escena: 304 bytes
(POV-Ray SDL no tiene funciones de entrada de consola, por lo que he sustituido la entrada de archivos. La salida es a la consola, pero está rodeada por una buena cantidad de salida de estado del programa).
Commodore BASIC:
111104bytes(No todos los personajes de este programa pueden representarse en Unicode.
|
Se usa para representarSHIFT+H
,┌
representaSHIFT+O
,┐
representaSHIFT+P
,/
representaSHIFT+N
. Debido a las limitaciones de Commodore Basic I / O, la entrada se ingresa un número a la vez, con una entrada de -1 para indicar el final de la entrada. La salida está delimitada por tabulaciones.)QBasic: 96 bytes
Utiliza el mismo esquema de E / S que la entrada de DLosc; Utilicé el hecho de que
INPUT V
devuelve 0 bytes (que se evalúa como falso) cuando se ingresa una línea vacía (al menos en MS-DOS QBasic 1.1; no sé si también funciona en QB64).Pascal (compilador FPC): 172 bytes
La entrada está separada por espacios, no por comas, y se termina en línea nueva. La salida está separada por espacios.
Erlang: 401 bytes
El manejo de cuerdas en Erlang es un dolor real. En consecuencia, todos los números de coma flotante deben ingresarse con al menos un dígito después del punto decimal:
string:to_float/1
no se convertirá1
, pero se convertirá1.0
.(Más por venir, especialmente si descubro cómo hacer esto en RoboTalk, un lenguaje sin operaciones de punto flotante ni E / S)
fuente
(Q/N)^.5
a miSQR(q/n)
, pero eso no afecta la longitud. Tal vez podríamos compartir el liderazgo? (Hago que el byte cuente 96, sin incluir la nueva línea final.)wc
) incluye la nueva línea final, que supongo que nos da a ambos la ventaja, al menos hasta que descubra cómo deshacerme de ese duplicadoINPUT V
.GOTO
s en lugar del bucle, pero no pude obtener ninguna reducción adicional.Idiomas: 3
A menos que se indique lo contrario, los números deben estar separados por espacio.
C:
181163Toma números hasta el final de la entrada.
(ISO) C ++: 195
Toma números hasta el final de la entrada.
Haskell:
185180164159149140Toma arbitrariamente muchas listas de números separados por nueva línea.
Implementación
5041 (gracias shiona) bytes son solo para IO: /.Ejemplo
(Powershell's
echo
akaWrite-Output
imprime cada parámetro en una sola línea)fuente
;c=t/a
en la cláusula let, escriba[h,g,a/z,r,t/a]
después dein
.s$m(1/)x
es más corta ques.m(1/)$x
, tal como estás$m(^2)x
.fromIntegral.length$x
confoldr(\_ x->x+1)0x
.s$m(const 1)x
.Idiomas - 4
Siempre me encanta una excusa para sacar buenos viejos
QBasic,
11296 bytesQBasic no es bueno con números variables de entradas, por lo que el programa requiere un número por línea, terminado con 0 o una línea vacía. La salida se separa con espacios.
(Acortado una vez que me di cuenta de que 0 no es un número válido y puede usarse para la terminación de entrada).
Probado con QB64 :
Lisp común, 183 bytes
Por alguna razón, esperaba que esto fuera más corto. No soy ningún tipo de experto en Lisp, por lo que se agradecen los consejos. Versión sin golf:
Probablemente la mejor manera de probar es pegando la función en
clisp
REPL, de esta manera:Me encanta cómo Lisp usa fracciones exactas en lugar de flotantes cuando divide dos enteros.
Prólogo, 235 bytes
Prolog no es bueno en matemáticas, pero lo usaremos de todos modos. Probado con SWI-Prolog. Creo que el
sumlist
predicado puede no ser Prolog estándar, pero lo que sea, lo estoy usando.Sin golf:
En Linux, con el código en un archivo llamado
means.pro
, pruebe así:Da un resultado correcto pero bastante divertido cuando solo hay un número:
Python 3, 103 bytes
La misma estrategia que la versión Python 2 de Dennis . Toma una lista de números separados por comas; maneja tanto ints como flotadores. Una entrada de un solo número debe estar entre llaves (y una lista de números siempre puede estar); una solución costaría 4 bytes.
fuente
8 idiomas
Fortran 77 - 286
BBC BASIC - 131
Salida:
C ++ - 292
Python 3 - 151
Salida:
Java - 421
Javascript - 231
No soy un Javascripter, por lo que cualquier consejo sería muy apreciado
Algoid - 337
Búscalo en Google Play Store o en Raspberry Pi Store
var'aQ - 376
Esto es sintácticamente correcto y todo, pero todos los intérpretes actuales simplemente no funcionan ...
fuente
sqrt(b4/l)
en lugar de(b4/l)**0.5
y muchos más mediante el uso dea
,b
,c
,d
en lugar deb1-4
. También me estás haciendo llorar al usar 77 en lugar del más moderno F90 +.var
:var l=readline(),b=0,d=1,e=0,f=0;
. Sinreadline
embargo, no estoy seguro de qué función es.Length of sequence?
o al menos haciéndolo más corto.Idiomas: 3
CJam, 58
TI-Basic, 85
Java, 457
fuente
{dim(Ans)/sum(Ansֿ¹),dim(Ans)√(prod(Ans)),mean(Ans),√(mean(Ans²)),mean(Ans²)/mean(Ans
Idiomas - 2
Cobra - 132
Python - 129
fuente
1 idioma
R
9291Toma un vector de valor y genera un vector de medias.
fuente
d=s(x^2)
y reemplaza los dos últimos usos des(x^2)
cond
.1 idioma
Golfscript, 162
Si, es enorme. Y definitivamente puede hacerse más pequeño. Lo que haré más tarde. Pruébalo aquí .
Espera que la entrada esté separada por una nueva línea. Si eso no está permitido, lo arreglaré (+2 caracteres). Produce la lista nueva línea separada.
Aquí hay una versión un poco más legible:
fuente
l*l
veces mayor, dondel
es el número de flotadores.Idiomas 2
Fortran: 242
No me ha gustado por claridad, pero la versión de golf es lo que cuenta. primero debe ingresar el número de valores que se agregarán, luego los valores.
wxMaxima 134
Copia esto en el editor,
ctrl+enter
y luego llame a través dem([1,2,3,4,5]),numer
para obtener una salida de punto flotante (de lo contrario, obtendrá una salida simbólica).fuente
Perl
8676Entrada: un número por línea.
EDITAR: este es un personaje más largo, pero dado que aparentemente las líneas shebang no se cuentan para el total, termina siendo mejor:
fuente
T-SQL,
136122Con las listas de números almacenadas en la tabla S con I (entero) identificando la lista y V (flotante) el valor.
SQLFiddle
Guardado 14 gracias a Alchymist
fuente
Idiomas: 5
Algunas entradas se esfuerzan por evitar errores de redondeo (a 4 decimales), utilizando BigDecimal de Java en lugar de flotante / doble, y aceptan reglas de E / S por OP.
Las entradas más nuevas relajan las reglas IO y BigDecimal.
Groovy -
409400164157 caracteresmuestra de ejecución:
Java -
900235 caracteresmuestra de ejecución:
Clojure -
524324caracteresejecución de muestra (tiene una coma final al final):
Scala -
841663230 caracteresmuestra de ejecución:
JRuby - 538 caracteres
No está claro si JRuby difiere de Ruby: esto debe ejecutarse en la JVM. Sin embargo, es la sintaxis de Ruby. De cualquier manera, lo estoy incluyendo en el espíritu de una piedra de Rosetta.
ejecución de muestra (imprime una advertencia en stderr):
fuente
Idiomas 1
lua - 113
fuente
Idiomas - 1
Maravilloso:
fuente
2 idiomas
Java: 243 bytes
expandido:
vba - excel, 387 bytes
Complete los valores en la primera columna, luego presione el botón (que activa este código) y generará los valores en la segunda columna.
fuente
1 idioma
Óxido - 469
(
rustc 0.11.0-pre (3851d68 2014-06-13 22:46:35 +0000)
)Versión sin golf:
Versión compacta de 430 bytes sin bucle o entrada, para probar en playrust :
Actualizado para el nuevo Rust:
Sin golf:
Golfizado (402 bytes):
fuente
Idiomas: 4
CoffeeScript, 193
Toma una cadena de entrada separada por comas:
JavaScript (ES5), 256
De nuevo, toma una cadena de entrada separada por comas:
PHP, 252
Mismo concepto:
TypeScript, 393 *
Dado que TypeScript es un superconjunto de JavaScript, podría haber enviado el mismo código, pero eso no sería justo ahora. Aquí hay un código TypeScript minimizado con todas las funciones, variables y parámetros completamente tipados:
Podría haber hecho trampa y usar el tipo
any
también ... pero, ya sabes.fuente
Excel - 120
No estoy seguro si esto cuenta como un lenguaje de "programación", pero pensé que la gente podría usar una hoja de cálculo para este tipo de cosas
Con los números en A2: J2
fuente
A:A
para apuntar a toda la columnaA
.VBA (Excel) - 105
Sin golf:
Este código debe ejecutarse en la ventana inmediata y la matriz debe llamarse i . Dado que no hay recopilación de errores, ni limpieza, ni caída / liberación de variables, si desea probar este código, puede usar el siguiente fragmento de código (solo pegue en la ventana inmediata y ejecute las líneas en orden):
Nada muy especial, solo la opción de usar la ventana inmediata con : para reemplazar los saltos de línea, lo que ahorra unos pocos bytes en lugar de configurar una sub o función y cerrarla; utilizando ? para imprimir en lugar de debug.print (solo en la ventana inmediata); y confiando en cómo vba determina los valores implícitos (agregar un valor a una variable no establecida devuelve el valor) y las operaciones implícitas (cualquier cosa que involucre una cadena es concatenación implícita).
fuente