O objetivo do Rosetta Stone Challenge é escrever soluções no maior número possível de idiomas. Mostre seu multilinguismo de programação!
O desafio
Quando as pessoas usam o termo "média", geralmente significam a média aritmética, que é a soma dos números divididos pelo número de números. Há, no entanto, muitos outros significados para a palavra "média", incluindo a média harmônica , a média geométrica , a média aritmética , a média quadrática e a média contra- harmônica .
Seu desafio é escrever um programa que insira uma lista de números e produza esses 5 meios diferentes. Além disso, você está tentando escrever programas no maior número possível de idiomas . Você tem permissão para usar qualquer tipo de função de biblioteca padrão que seu idioma possua, pois essa é principalmente uma demonstração de idioma.
Entrada
A entrada será uma 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
Saída
A saída será as cinco médias na ordem listada acima (harmônica, geométrica, aritmética, quadrática, contra-harmônica). Convenientemente, isso é o mesmo que aumentar a ordem.
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
Haverá alguma tolerância razoável no formato de E / S, mas quero várias casas decimais de precisão. Como eu quero saída de ponto flutuante, você pode assumir a entrada de ponto flutuante.
O Critério de Vencimento Objetivo
Quanto a um critério de vitória objetivo, aqui está: Cada idioma é uma competição separada sobre quem pode escrever a entrada mais curta, mas o vencedor geral será a pessoa que vencer a maioria dessas subcompetições. Isso significa que uma pessoa que responde em muitos idiomas incomuns pode obter uma vantagem. O código-golfe é principalmente um desempate para quando há mais de uma solução em um idioma: a pessoa com o programa mais curto recebe crédito por esse idioma.
Se houver empate, o vencedor será a pessoa com o maior número de finalizações em segundo lugar (e assim por diante).
Regras, restrições e notas
Seu programa pode ser escrito em qualquer idioma que existia antes de 2 de setembro de 2014. Também terei que confiar na comunidade para validar algumas respostas escritas em alguns dos idiomas mais incomuns / esotéricos, pois é improvável que eu possa testar eles.
Mantenha todos os seus diferentes envios contidos em uma única resposta.
Além disso, não há travessuras com basicamente a mesma resposta em um dialeto de idioma ligeiramente diferente. Eu serei o juiz sobre quais submissões são diferentes o suficiente.
Classificação atual
Esta seção será atualizada periodicamente para mostrar o número de idiomas e quem lidera em cada um.
- Algoid (337) - Deterioração beta
- APL (42) - algoritmshark
- Awk (78) - Dennis
- BBC BASIC (155) - Deterioração beta
- C (136) - Dennis
- C ++ (195) - Zeta
- C # (197) - Martin Büttner
- CJam (43) - Dennis
- Clojure (324) - Michael Páscoa
- Cobra (132) - Ourous
- CoffeeScript (155) - Martin Büttner
- Commodore BASIC (104) - Marca
- Lisp comum (183) - DLosc
- Erlang (401) - Mark
- Fortran (242) - Kyle Kanos
- Fortran 77 (286) - Decaimento Beta
- GNU bc (78) - Dennis
- GolfScript (83) - Dennis
- Groovy (157) - Michael Páscoa
- Haskell (140) - Zeta
- J (28) - algoritmos
- Java (235) - Michael Páscoa
- JavaScript (ES6) (112) - Dennis
- JRuby (538) - Michael Páscoa
- Julia (79) - Martin Büttner
- Lua (113) - AndoDaan
- Mathematica (65) - Martin Büttner
- Matlab (63) - Martin Büttner
- Oitava (68) - Dennis
- Openscript (849?) - COTO
- Pascal (172) - Marcos
- Perl (76) - Sujo
- PHP (135) - Dennis
- POV-Ray 3.7 (304) - Marca
- Prolog (235) - DLosc
- Pitão (52) - Dennis
- Python 2 (96) - Dennis
- Python 3 (103) - DLosc
- Q (53) - algoritmshark
- Q'Nial (68) - algoritmshark
- QBasic (96) - DLosc
- R (91) - plannapus
- Rubi (118) - Martin Büttner
- Ferrugem (469) - Vi.
- Scala (230) - Michael Páscoa
- T-SQL (122) - MickyT
- TI-Básico (85) - Ypnypn
- TypeScript (393) - rink.attendant.6
- VBA (Excel) (387) - maníaco por alongamento
- wxMaxima (134) - Kyle Kanos
Classificação do usuário atual
- Dennis (10)
- Martin Büttner (6)
- Michael Easter (5)
- Mark, DLosc, algoritmshark (4)
- Deterioração beta (3)
- Zeta, Kyle Kanos (2)
- Ourous, AndoDaan, COTO, Grimy, plannapus, Vi., MickyT, Ypnypn, rink.attendant.6, Stretch Maniac (1)
(Se eu cometi um erro nas classificações acima, informe-me e eu o corrigirei. Além disso, o desempate ainda não foi aplicado.)
fonte
(a-b)/ln(a/b)
. Admito que só hoje descobri como ele se generaliza para um conjunto de amostras de mais de dois :-) en.wikipedia.org/wiki/Logarithmic_meanbc
, você consideraawk
"idiomas" ou "comandos" - então as diferentes maneiras de implementar isso a partir de um shell são contadas em idiomas diferentes?Respostas:
Idiomas: 1
Openscript (muitas centenas)
(Minha linguagem de programação obscura e tristemente extinta favorita, porque aprendi a programar nela há muitos anos.;)
fonte
put the length of the inputs into n
? O_O Eu já amo esse idioma.Línguas: 13
Acho que agora esta lista deve conter todas as linguagens de programação que eu conheço suficientemente bem para resolver pelo menos problemas simples. Tentarei manter essa lista completa ao longo do tempo, enquanto observo algumas novas linguagens. (I utilizado para conhecer alguns Smalltalk e Delphi, mas eu teria que procurar muito para adicioná-los a se sentir bem.)
C,
196190171165 bytesLê a entrada como argumentos individuais da linha de comando e grava uma lista separada por vírgula dos meios para STDOUT.
Obrigado por algumas melhorias no Quentin.
C ++, 200 bytes
É o mesmo que o código C acima, mais duas inclusões. Estou incluindo isso porque é mais longo do que o envio vencedor de C ++, então acho que nenhum dano foi causado e gostaria que este post contivesse todos os idiomas que eu conheço. :)
C #,
220197 bytesDefine uma função em uma classe tirando um
List
dos duplos e retornando uma matriz de duplos com as cinco médias.Obrigado por algumas melhorias no Visual Melon e Bob.
CJam, 52 bytes
Pega a entrada como argumentos da linha de comando e imprime uma lista com os cinco valores em STDOUT.
CoffeeScript, 155 bytes
Isso é quase o mesmo que a solução JavaScript mais abaixo (e inicialmente eu não contei por esse motivo), mas o OP o incluiu no placar de qualquer maneira, então eu a promovi para um envio completo. Eles são idiomas tecnicamente diferentes, afinal.
JavaScript (ES6),
155153 bytesDefine uma função pegando uma matriz de números e retornando uma matriz com as cinco médias.
Obrigado por algumas melhorias em William Barbosa.
Julia, 79 bytes
Define uma função pegando uma lista de números e retornando uma lista com as cinco médias.
Lua, 120 bytes
Define uma função que obtém uma lista de números e retorna 5 valores separados para as médias.
Mathematica,
736765 bytesDefine uma função que obtém uma lista de números de ponto flutuante e retorna uma lista com as cinco médias.
Curiosidade: o Mathematica possui todos os cinco meios integrados (e esse foi o meu envio original), mas três deles podem ser implementados em menos caracteres que os nomes de suas funções.
Matlab,
6563 bytesSolicita a entrada como uma matriz de números do usuário e gera as cinco médias individualmente.
Obrigado por algumas melhorias em Dennis Jaheruddin.
PHP ≥ 5,4,
152149143 bytesMesma implementação funcional que as anteriores.
Obrigado por algumas melhorias em Ismael Miguel.
Python 2, 127 bytes
Mesma implementação funcional que as anteriores.
Ruby,
129118 bytesMesma implementação funcional que as anteriores.
fonte
norm(l)/n^.5
no lugar denorm(l)/sqrt(n)
.4 idiomas
J -
3228 char!Uma função que toma a lista de números como seu único argumento.
a
aqui está um advérbio, que é a opinião de J sobre funções de segunda ordem.+/ % #
é um trem em J, que significa soma dividida por contagem, a definição da média aritmética.&.:
é uma conjunção chamada Under, ondeu&.:v(y)
é equivalentevi(u(v(y)))
evi
é o inverso funcional dev
. Sim, J pode receber inversões funcionais .Assim,
a
pega uma função à esquerda e retorna uma média que "ajusta" os valores pela função, pega a média aritmética e depois inverte o ajuste posteriormente.%a
é a média harmônica, porque%
significa recíproca e é inversa.^.a
é a média geométrica, porque^.
é o logaritmo natural e seu inverso é o exponencial.(Π x)^(1/n) = exp(Σ log(x)/n)
[a
é a média aritmética, porque[
é a função de identidade.*:a
é a média quadrática, porque*:
é quadrado e sua inversa é a raiz quadrada.*:a
dividido por ([a
dividido por*:a
)). Isso parece[a(]%%)*:a
. Enquanto estamos nisso, acrescentamos cada um dos meios[a(,,]*%~)*:a
,.Por fim, usamos vírgulas para anexar o restante dos resultados. Não precisamos de mais parênteses, porque a concatenação é (pelo menos nesse caso) associativa.
Em uso no J REPL:
Q - 53 char
Função de argumento único. Apenas fazemos uma lista de todos os meios que queremos.
A mesma coisa em outras versões do k está abaixo.
{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 car
Função tendo lista como argumento.
Explicado por explosão:
Q'Nial - 68 car
Você vai amar este.
Q'Nial é outra linguagem orientada a array, uma implementação de Nial , que é baseada em uma Teoria de Arrays obscura, da mesma forma que Haskell é baseada em teoria de categorias. (Obtenha aqui .) É muito diferente de qualquer um dos outros três - ele analisa da esquerda para a direita, antes de tudo! -, mas ainda está mais relacionado a eles do que a qualquer outro idioma.
fonte
/⍨
) Provavelmente era para portar códigos realmente antigos. O que você usa? Dyalog? NARS2000? Eu acho que é realmente lamentável que J tenha adotado a abordagem de ruído ASCII. A implementação dessa linguagem é uma obra de gênio. Mas eu não posso ser incomodado para mentalmente parse]a(,,]*%~)*:a
[0.5]
? Eca.) Com a prática, você se acostuma a tácito J, no entanto. Fica muito pior que isso.12 idiomas
CJam,
454443 bytesLê uma matriz de carros alegóricos (por exemplo,
[1.0 2.0 3.0 4.0 5.0]
) de STDIN. Experimente online.APL,
6761535250 bytesExperimente online.
Pitão,
5552 bytesLê números separados por espaço (por exemplo,
1 2 3 4 5
) de STDIN.Oitava, 68 bytes
Sem contar o shebang. Lê uma matriz (por exemplo,
[1 2 3 4 5]
) de STDIN.GNU bc, 78 bytes
Contando o shebang como 1 byte (
-l
switch). Lê carros alegóricos separados por espaço em branco de STDIN, seguidos por um zero.Awk, 78 bytes
Sem contar o shebang. Lê um número por linha do STDIN.
GolfScript,
8683 bytesO GolfScript não tem suporte interno para carros alegóricos, portanto, o código está analisando-os. Portanto, o formato de entrada é bastante restritivo: você deve inserir
1.0
e0.1
não1
,1.
ou.1
.Lê carros alegóricos (como explicado acima), um por linha, a partir de STDIN. Experimente online.
Perl,
9085 bytesContando o shebang como 1 byte (
-n
switch). Lê um número por linha do STDIN.Python 2,
10296 bytesSem contar o shebang. Lê uma lista de carros alegóricos (por exemplo,
1.0,2.0,3.0,4.0,5.0
) de STDIN.ECMAScript 6 (JavaScript),
114112 bytesSem contar o LF. Espera uma matriz (por exemplo,
[1,2,3,4,5]
) como argumento.PHP, 135 (ou 108?) Bytes
Sem contar shebang ou LF. Lê flutuadores como argumentos de linha de comando.
Eu tenho uma solução mais curta, mas não sei como contar os bytes:
Contando os bytes em cada sequência de códigos e adicionando dois para
-R
e-E
, essa abordagem terá 108.C,
172140139137136 bytesSem contar o LF. Compile com
gcc -lm
. Lê carros alegóricos separados por espaço em branco de STDIN.fonte
while(cond)...,n++;
vsfor(;cond;n++)...;
interpreter switches script
para cada envio. A convenção é que as linhas shebang não são contadas, a menos que contenham opções não padrão. Conforme indicado na minha resposta, contei#!/usr/bin/awk -f
como zero bytes (-f
significa programa de leitura do arquivo), mas#!/usr/bin/perl -n
como um byte (-n
significa iterar nas linhas de entrada).-q
para Octave e-lm
C?-q
é apenas para acalmar a saída.-lm
é necessário pelo GCC. Outros compiladores podem não ser necessários.J (50):
Este é o tipo de coisa em que J é bom:
Como sempre: uma explosão na fábrica de smileys. No entanto, alguns dos smileys foram deixados intactos desta vez:
:)
e:*:
(esse é um cara com quatro olhos e uma gema embutida no rosto) Minha sessão interativa usada para criar isso: http://pastebin.com/gk0ksn2bEm ação:
Explicação:
Como você pode esperar, na verdade existem 5 funções agrupadas em uma lista com um conjunto de garfos e ganchos. (Não se preocupe, é apenas uma maneira conveniente de gerar várias funções em uma única lista).
As linhas que eu usei para fazer J gerar essa resposta podem ser um pouco mais claras:
Vamos examiná-los separadamente.
Harmônica
#
- Comprimento (da matriz)%
- Dividido por+/@:%
- A soma (+/
, ou dobra+
na matriz (+/1 2 3 4
==1+2+3+4
)) no topo da divisão, mas desta vez no caso monádico. O que isso significa aqui é que J "adivinha" automaticamente que 1 seria o valor mais útil.Geométrico
#
- Comprimento (da matriz)%:
- Raiz (4 %: 7
significaria 'a quarta (ou tesserata) raiz de sete)*/
- Produto (*/
é semelhante ao significado+/
, consulte a função anterior)Aritmética
+/
- soma, deve ser familiar agora%
- dividido por#
- ComprimentoQuadrado médio da raiz
Ehm, sim ...
%:
- A raiz de%@#
- O inverso do comprimento*
- Tempos+/@:*:
- A soma dos quadrados (*:
é quadrado, embora*~
também seja).Contra-harmônico
+/@:*:
- A soma dos quadrados%
- dividido por+/
- a soma.Se J fosse tão bom no processamento de strings, estaríamos ganhando muito mais competições de golfe ...
fonte
Línguas: 5
POV-Ray 3.7 Cena Descrição Idioma: 304 bytes
(O POV-Ray SDL não possui funções de entrada do console, por isso substituí a entrada de arquivo. A saída é para o console, mas é cercada por uma boa parte da saída do status do programa.)
Commodore BASIC:
111104 bytes(Nem todos os caracteres deste programa podem ser representados em Unicode.
|
É usado para representarSHIFT+H
,┌
representaSHIFT+O
,┐
representaSHIFT+P
,/
representaSHIFT+N
. Devido às limitações do Commodore Basic I / O, a entrada é inserida um número por vez, com uma entrada de -1 para indicar o final da entrada. A saída é delimitada por tabulação.)QBasic: 96 bytes
Usa o mesmo esquema de E / S da entrada do DLosc; Joguei 15 bytes usando o fato de que
INPUT V
retornar 0 (que é falso) quando uma linha vazia é inserida (pelo menos no MS-DOS QBasic 1.1 - não sei se também funciona no QB64).Pascal (compilador FPC): 172 bytes
A entrada é separada por espaços, não vírgulas, e a nova linha é finalizada. A saída é separada por espaço.
Erro: 401 bytes
O manuseio de cordas em Erlang é uma dor real. Conseqüentemente, todos os números de ponto flutuante devem ser inseridos com pelo menos um dígito após o ponto decimal -
string:to_float/1
não serão convertidos1
, mas serão convertidos1.0
.(Mais por vir, especialmente se eu descobrir como fazer isso no RoboTalk, um idioma sem operações de ponto flutuante nem E / S)
fonte
(Q/N)^.5
com o meuSQR(q/n)
, mas isso não afeta o comprimento. Talvez pudéssemos compartilhar a liderança? (I tornar o byte de contagem 96, não incluindo a nova linha de fuga.)wc
) inclui a nova linha à direita, que eu suponho que nos dá a liderança - pelo menos até descobrir como me livrar dessa duplicataINPUT V
.GOTO
s em vez do loop, mas não consegui nenhuma redução adicional.Línguas: 3
Salvo indicação em contrário, os números precisam ser separados pelo espaço.
C:
181163Leva números até o final da entrada.
(ISO) C ++: 195
Leva números até o final da entrada.
Haskell:
185180164159149 149140Leva arbitrariamente muitas listas de números separados por nova linha.
Implementação
5041 (obrigado shiona) bytes são apenas para E / S: /.Exemplo
(O Powershell's
echo
akaWrite-Output
imprime todos os parâmetros em uma única linha)fonte
;c=t/a
na cláusula let, escreva[h,g,a/z,r,t/a]
após oin
.s$m(1/)x
é mais curta dos.m(1/)$x
que estás$m(^2)x
.fromIntegral.length$x
porfoldr(\_ x->x+1)0x
.s$m(const 1)x
.Idiomas - 4
Eu sempre amo uma desculpa para tirar boa e velha
QBasic,
11296 bytesO QBasic não é bom com números variáveis de entradas, portanto, o programa requer um número por linha, finalizado com 0 ou uma linha vazia. A saída é separada por espaços.
(Reduzido quando percebi que 0 não é um número válido e pode ser usado para finalização de entrada.)
Testado usando QB64 :
Lisp comum, 183 bytes
Por alguma razão, esperava que isso fosse mais curto. Como não sou especialista em Lisp, as dicas são apreciadas. Versão não destruída:
Provavelmente, a melhor maneira de testar é colando a função no
clisp
REPL, da seguinte maneira:Eu amo como o Lisp usa frações exatas em vez de flutuadores ao dividir dois números inteiros.
Prolog, 235 bytes
O prólogo não é bom em matemática, mas vamos usá-lo de qualquer maneira. Testado com SWI-Prolog. Eu acho que o
sumlist
predicado pode não ser o Prolog padrão, mas seja o que for, eu estou usando.Ungolfed:
No Linux, com o código em um arquivo chamado
means.pro
, teste como este:Dá um resultado correto, mas bastante divertido, quando há apenas um número:
Python 3, 103 bytes
Mesma estratégia que a versão Python 2 de Dennis . Leva uma lista de números separados por vírgula; lida com ints e floats. Uma entrada de número único deve ser colocada entre colchetes (e uma lista de números sempre pode ser); uma correção custaria 4 bytes.
fonte
8 Idiomas
Fortran 77-286
BBC BASIC - 131
Saída:
C ++ - 292
Python 3-151
Saída:
Java - 421
Javascript - 231
Eu não sou um Javascripter, então qualquer dica seria muito apreciada
Algoid - 337
Procure na Google Play Store ou na Raspberry Pi Store
var'aQ - 376
Isso é sintaticamente correto e tudo, mas todos os intérpretes atuais simplesmente não funcionam ...
fonte
sqrt(b4/l)
em vez de(b4/l)**0.5
e muitos mais usandoa
,b
,c
,d
em vez deb1-4
. Você também está me fazendo chorar usando 77 em vez do F90 + mais moderno.var
:var l=readline(),b=0,d=1,e=0,f=0;
. Não tenho certeza do quereadline
é essa função.Length of sequence?
ou, pelo menos, diminuindo-o.Línguas: 3
CJam, 58
TI-Basic, 85
Java, 457
fonte
{dim(Ans)/sum(Ansֿ¹),dim(Ans)√(prod(Ans)),mean(Ans),√(mean(Ans²)),mean(Ans²)/mean(Ans
Idiomas - 2
Cobra - 132
Python - 129
fonte
1 idioma
R,
9291Pega um vetor de valor e gera um vetor de médias.
fonte
d=s(x^2)
e substituir os dois últimos usos des(x^2)
pord
.1 idioma
Golfscript, 162
Sim, é enorme. E definitivamente pode ser feito menor. O que farei algum tempo depois. Experimente aqui .
Ele espera que a entrada seja separada por nova linha. Se isso não for permitido, eu o corrigirei (+2 caracteres). Ele gera a nova linha da lista separada.
Aqui está uma versão um pouco mais legível:
fonte
l*l
vezes maior, ondel
está o número de carros alegóricos.Línguas 2
Fortran: 242
Eu o destruí para maior clareza, mas a versão do golfe é o que é contado. você primeiro precisa inserir o número de valores a serem adicionados e, em seguida, os valores.
wxMaxima 134
Copie isso no editor
ctrl+enter
e chame viam([1,2,3,4,5]),numer
para obter saída de ponto flutuante (caso contrário, você obtém saída simbólica).fonte
Perl,
8676Entrada: um número por linha.
EDIT: este é um caractere a mais, mas, como aparentemente as linhas shebang não são contadas no total, acaba sendo melhor:
fonte
T-SQL,
136122Com as listas de números armazenadas na tabela S, com I (inteiro) identificando a lista e V (flutuante) o valor.
SQLFiddle
Guardado 14 graças a Alchymist
fonte
Línguas: 5
Algumas entradas se esforçam para evitar erros de arredondamento (até quatro casas decimais), usando o BigDecimal do Java em vez de float / double, e aceitam regras de E / S por OP.
As entradas mais recentes relaxam as regras de E / S e o BigDecimal.
Groovy -
409400164157 caracteresamostra de execução:
Java -
900235 caracteresamostra de execução:
Clojure -
524324 caracteresamostra executada (ela possui uma vírgula no final):
Scala -
841663230 caracteresamostra de execução:
JRuby - 538 caracteres
Não está claro se o JRuby difere do Ruby: isso deve ser executado na JVM. No entanto, é a sintaxe do Ruby. De qualquer forma, estou incluindo no espírito de uma Pedra de Roseta.
amostra executada (imprime um aviso ao stderr):
fonte
Línguas 1
lua - 113
fonte
Idiomas - 1
Groovy:
fonte
2 Idiomas
Java - 243 bytes
expandido:
vba - excel, 387 bytes
Preencha os valores na primeira coluna, pressione o botão (que aciona esse código) e ele gera os valores na segunda coluna.
fonte
1 idioma
Ferrugem - 469
(
rustc 0.11.0-pre (3851d68 2014-06-13 22:46:35 +0000)
)Versão não destruída:
Versão compactada de 430 bytes sem loop ou entrada, para teste em playrust :
Atualizado para ferrugem mais recente:
Ungolfed:
Golfe (402 bytes):
fonte
Línguas: 4
CoffeeScript, 193
Toma uma sequência de entrada separada por vírgula:
JavaScript (ES5), 256
Novamente, recebe uma sequência de entrada separada por vírgula:
PHP, 252
Mesmo conceito:
TypeScript, 393 *
Como o TypeScript é um superconjunto de JavaScript, eu poderia ter enviado o mesmo código, mas isso não seria realmente justo agora. Aqui está um código TypeScript minificado com todas as funções, variáveis e parâmetros totalmente digitados:
Poderia ter trapaceado e usado o tipo
any
também ... mas, você sabe.fonte
Excel - 120
Não tenho certeza se isso conta como uma linguagem de "programação", mas pensei que as pessoas podem realmente usar uma planilha para esse tipo de coisa
Com os números em A2: J2
fonte
A:A
para direcionar a coluna inteiraA
.VBA (Excel) - 105
Ungolfed:
Esse código deve ser executado na janela imediata e a matriz deve ser chamada i . Como não há coleta de erros, limpeza ou remoção / liberação de variável, se você deseja testar esse código, pode usar o seguinte trecho de código (basta colar na janela imediata e executar as linhas em ordem):
Nada muito especial, apenas a opção de usar a janela imediata : para substituir as quebras de linha, o que economiza alguns bytes versus configurar uma sub ou função e fechá-la; usando? imprimir em vez de debug.print (apenas na janela imediata); e depender de como o vba determina valores implícitos (adicionar um valor a uma variável não definida retorna o valor) e operações implícitas (qualquer coisa que envolva uma cadeia de caracteres é concatenação implicitamente).
fonte