Chúng tôi có một câu hỏi mà chúng tôi yêu cầu tại văn phòng của chúng tôi trong các cuộc phỏng vấn diễn ra như thế này. Vì mục đích nhất quán, tôi hạn chế bối cảnh của việc này thành python. Tôi chắc chắn có những câu trả lời khác nhưng tôi thực sự chỉ quan tâm đến câu trả lời python.Phỏng vấn "Hello World" thú vị
Viết cho tôi một hàm có tên say
rằng khi gọi như thế này:
>>> say('Hello')('World')
Nó CHỈ Prints (không trở về):
>>> say('Hello')('World')
Hello World
>>>
Chúng tôi đã vào một cuộc thảo luận meta sau buổi phỏng vấn ngày nay, nơi tôi nói rằng tôi luôn hy vọng người nộp đơn sẽ trả lời với những điều sau đây.
def say(x):
print "Hello World"
return lambda a:None
tôi nhận ra rằng có một khả năng rút ngắn thời gian này hơn nữa bằng cách thay thế lambda
chức năng với một chiếc của một số loại trả về None
nhưng tôi đã đào và dường như không thể tìm thấy một trong đó là ngắn hơn lambda a:None
Vậy câu hỏi tổng thể ở đây là ...
bạn có thể nghĩ ra một cách để làm điều này ngắn hơn, như trong nhân vật tổng thể ít (bỏ qua các dấu ngắt dòng). Bất kỳ câu lệnh nhập nào đều được tính vào số ký tự của bạn. (52 nhân vật)
CẬP NHẬT
(39 nhân vật)
>>> def p(x):
... print "Hello",x
>>> say=lambda x:p
>>> say("Hello")("World")
Hello World
>>>
Python 3 trả lời (48 nhân vật)
>>> def say(x):
... return lambda a:print("Hello World")
>>> say("Hello")("World")
Hello World
>>>
bạn có muốn 'say' thực sự sử dụng đối số của nó không? hay nó luôn luôn chỉ là 'in' Hello World''? –
Toàn bộ điểm của bài đăng là anh ấy nghĩ sẽ rất buồn cười nếu nó _didn't_ sử dụng các đối số của nó. – agf
vâng, chúng tôi luôn đồng ý với một cái gì đó luôn luôn in "Hello World" bởi vì thường khi chúng tôi cụm từ câu hỏi, ngôn ngữ của chúng tôi rời khỏi phòng cho đầu ra này. –