Mamy pytanie, które zadajemy w naszym biurze podczas wywiadów, które przedstawiają się w następujący sposób. W trosce o spójność ograniczam kontekst tego do pythona. Jestem pewien, że są inne odpowiedzi, ale naprawdę interesują mnie odpowiedzi na pythona.Interesujący wywiad "Witaj świecie"
Napisz mi funkcję o nazwie say
że kiedy nazywa się tak:
>>> say('Hello')('World')
drukuje tylko (nie zwrotów):
>>> say('Hello')('World')
Hello World
>>>
Wsiedliśmy do meta dyskusji po wywiadzie dziś gdzie oświadczyłem, że zawsze mam nadzieję, że skarżący odpowie na następujące pytania.
def say(x):
print "Hello World"
return lambda a:None
zdałem sobie sprawę, że istnieje możliwość skrócenia tego dodatkowo zastępując funkcję lambda
z wbudowanym jakiegoś zwracającej None
ale już wykopane i nie wydaje się znaleźć taki, który jest krótszy niż lambda a:None
Więc ogólnie pytanie o to ...
można myśleć o sposób, aby ten krótszy, podobnie jak w mniej ogólnej postaci (pomijając podziały wiersza). Wszelkie instrukcje importowania są liczone w liczbie znaków. (52) znaków
UPDATE
(39 znaków)
>>> def p(x):
... print "Hello",x
>>> say=lambda x:p
>>> say("Hello")("World")
Hello World
>>>
Python 3 Odpowiedź (48) znaków
>>> def say(x):
... return lambda a:print("Hello World")
>>> say("Hello")("World")
Hello World
>>>
Czy chcesz "powiedzieć", aby rzeczywiście używać jego argumentów? czy powinien zawsze po prostu "wydrukować" Hello World''? –
Cały punkt postu uważa, że byłoby zabawnie, gdyby nie użył swoich argumentów. – agf
tak, jesteśmy w porządku z czymś, co zawsze drukuje '" Hello World "', ponieważ często kiedy wypowiadamy pytanie, nasz język pozostawia miejsce na to wyjście. –