Write a function that returns a lambda expression, which adds n
to its input.
adds1 = adds_n(1)
adds1(3) ➞ 4
adds1(5.7) ➞ 6.7
adds10 = adds_n(10)
adds10(44) ➞ 54
adds10(20) ➞ 30
from typing import Callable, TypeVar | |
import unittest | |
T = TypeVar("T", int, float) | |
def adds_n(amount: int) -> Callable[[T], T]: | |
return lambda x: 0 # Put your code here!!! | |
class Test(unittest.TestCase): | |
def test_1(self): | |
adds1 = adds_n(1) | |
self.assertEqual(adds1(3), 4) | |
self.assertEqual(adds1(5.7), 6.7) | |
def test_2(self): | |
adds10 = adds_n(10) | |
self.assertEqual(adds10(44), 54) | |
self.assertEqual(adds10(20), 30) | |
def test_3(self): | |
adds5neg = adds_n(-5) | |
self.assertEqual(adds5neg(0), -5) | |
self.assertEqual(adds5neg(77), 72) | |
def test_4(self): | |
adds0 = adds_n(0) | |
self.assertEqual(adds0(77), 77) | |
if __name__ == "__main__": | |
unittest.main() |
Found on Edabit: All About Lambda Expressions: Adding