kitscribe
@kitscribe
Хаброжитель

Как сделать вычисления только функциями?

Наткнулся на интересную задачу, которая требует реализовать вычисления только функциями

Примеры

seven(times(five())) # must return 35
four(plus(nine())) # must return 13
eight(minus(three())) # must return 5
six(divided_by(two())) # must return 3



Как такое можно реализовать?
  • Вопрос задан
  • 409 просмотров
Решения вопроса 1
0xD34F
@0xD34F
zero, one, two, three, four, five, six, seven, eight, nine = \
  [ lambda f = None, v = i: f(v) if callable(f) else v for i in range(10) ]

plus = lambda a: lambda b: b + a
minus = lambda a: lambda b: b - a
times = lambda a: lambda b: b * a
divided_by = lambda a: lambda b: b // a
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы