O ARGV também pode ser acessado como $ *, que economiza dois bytes
Snack
4
@Snack Hehe, golfe uma resposta dicas :)
AdmBorkBork
6
Use um lambda
As respostas normalmente são permitidas como funções lambda, com sua entrada / saída sendo os parâmetros / valor de retorno do lambda, para que você possa fazer isso:
->p,a,b{...}
Se você atribuiu isso a uma variável f, ela seria chamada como
f[p,a,b]
Geralmente, é bom assumir os tipos de entradas também, mas, para estar seguro, você pode mencioná-lo na sua resposta.
Se você precisar de um programa completo com stdin / stdout io por algum motivo, o mais curto possível é usar o -nsinalizador para encurtar uma chamada gets.to_ipara eval$_:
p=eval$_
a=gets
b=gets.to_i
O -nsinalizador envolve o código while gets ... end, para que o programa faça um loop se mais entrada for fornecida do que o programa consome.
Respostas:
Use ARGV ($ *) e atribuição em massa
(aviso: não conheço Ruby, mas isso funciona no TIO )
2826 bytes em vez de 30 (obrigado ao Snack por apontar o truque $ *)fonte
Use um lambda
As respostas normalmente são permitidas como funções lambda, com sua entrada / saída sendo os parâmetros / valor de retorno do lambda, para que você possa fazer isso:
->p,a,b{...}
Se você atribuiu isso a uma variável
f
, ela seria chamada comof[p,a,b]
Geralmente, é bom assumir os tipos de entradas também, mas, para estar seguro, você pode mencioná-lo na sua resposta.
Meta post relevante sobre métodos aceitáveis de entrada / saída
fonte
Se você precisar de um programa completo com stdin / stdout io por algum motivo, o mais curto possível é usar o
-n
sinalizador para encurtar uma chamadagets.to_i
paraeval$_
:O
-n
sinalizador envolve o códigowhile gets ... end
, para que o programa faça um loop se mais entrada for fornecida do que o programa consome.fonte