También se puede acceder a ARGV como $ *, lo que ahorra dos bytes
Snack
44
@Snack Hehe, jugando al golf una respuesta de consejos :)
AdmBorkBork
6
Usa una lambda
Las respuestas generalmente se permiten como funciones lambda con su entrada / salida como los parámetros / valor de retorno de la lambda, por lo que puede hacer esto:
->p,a,b{...}
Si asignó esto a una variable, fentonces se llamaría como
f[p,a,b]
En general, también está bien asumir los tipos de las entradas, pero para estar seguro, puede mencionarlo en su respuesta.
Si necesita un programa completo con stdin / stdout io por alguna razón, lo más breve que puede hacer es usar el -nindicador para acortar una llamada gets.to_ia eval$_:
p=eval$_
a=gets
b=gets.to_i
La -nbandera rodea su código while gets ... end, por lo que el programa se repetirá si se proporciona más entrada de la que consume su programa.
Respuestas:
Use ARGV ($ *) y asignación masiva
(descargo de responsabilidad: no conozco a Ruby, pero esto funciona en TIO )
2826 bytes en lugar de 30 (gracias a Snack por señalar el truco de $ *)fuente
Usa una lambda
Las respuestas generalmente se permiten como funciones lambda con su entrada / salida como los parámetros / valor de retorno de la lambda, por lo que puede hacer esto:
->p,a,b{...}
Si asignó esto a una variable,
f
entonces se llamaría comof[p,a,b]
En general, también está bien asumir los tipos de las entradas, pero para estar seguro, puede mencionarlo en su respuesta.
Meta publicación relevante sobre métodos de entrada / salida aceptables
fuente
Si necesita un programa completo con stdin / stdout io por alguna razón, lo más breve que puede hacer es usar el
-n
indicador para acortar una llamadagets.to_i
aeval$_
:La
-n
bandera rodea su códigowhile gets ... end
, por lo que el programa se repetirá si se proporciona más entrada de la que consume su programa.fuente