Tenemos una pregunta que hacemos en nuestra oficina durante las entrevistas que dice así. En aras de la coherencia, estoy restringiendo el contexto de esto a Python. Estoy seguro de que hay otras respuestas, pero en realidad solo estoy interesado en las respuestas de Python.Interesante entrevista "Hello World"
escribirme una función llamada say
que cuando se llama así:
>>> say('Hello')('World')
sólo muestra (no devuelve):
>>> say('Hello')('World')
Hello World
>>>
Nos metimos en una discusión meta después de la entrevista de hoy donde declaró que siempre espero que el solicitante responda con lo siguiente.
def say(x):
print "Hello World"
return lambda a:None
me di cuenta de que hay una posibilidad de reducir aún más esta reemplazando la función lambda
con un sistema incorporado en el de algún tipo que devuelve None
pero yo he cavado y parece que no puede encontrar uno que es más corto que lambda a:None
Así que la pregunta general aquí es ...
¿Puede usted pensar en una manera de hacer esto más corto, como en caracteres global inferior a (haciendo caso omiso de los saltos de línea). Cualquier declaración de importación se cuenta en el recuento de caracteres. (52 caracteres)
ACTUALIZACIÓN
(39 caracteres)
>>> def p(x):
... print "Hello",x
>>> say=lambda x:p
>>> say("Hello")("World")
Hello World
>>>
Python 3 Respuesta (48 caracteres)
>>> def say(x):
... return lambda a:print("Hello World")
>>> say("Hello")("World")
Hello World
>>>
¿quieres que 'say' use realmente sus argumentos? ¿o debería simplemente 'imprimir' Hello World''? –
El punto entero de la publicación es que él piensa que sería divertido si no usara sus argumentos. – agf
sí, estamos bien con algo que siempre imprime '" Hello World "' porque a menudo cuando formulamos la pregunta, nuestro lenguaje deja espacio para esta salida. –