Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3.13
- # date: 2025.07.10
- # [python - How to programm a function yielding average value of a list of values using functional style exclusively and preferably notable sophisticated? - Stack Overflow](https://stackoverflow.com/questions/79697123/how-to-programm-a-function-yielding-average-value-of-a-list-of-values-using-func)
- # ---
- # Coconut is a functional programming language that compiles to Python: https://coconut-lang.org/
- # ---
- data = [1, 4, 3, 5, 7]
- print('len:', len(data))
- print('sum:', sum(data))
- print('avg:', sum(data)/len(data))
- # -- functional ---
- def f_len(data):
- match data:
- case ():
- return 0
- case (head, *tail):
- return 1 + f_len(tail)
- def f_sum(data):
- match data:
- case ():
- return 0
- case (head, *tail):
- return head + f_sum(tail)
- def f_avg(data):
- return f_sum(data)/f_len(data)
- print('f_len:', f_len(data))
- print('f_sum:', f_sum(data))
- print('f_avg:', f_avg(data))
- # ---
- # it uses previous `f_len()`
- def f_avg_2(data):
- return f_div_sum(data, f_len(data))
- #def f_div_sum(data, num):
- # return f_sum(data)/num
- def f_div_sum(data, num):
- match data:
- case ():
- return 0
- case (head, *tail):
- return head/num + f_div_sum(tail, num)
- print('f_avg_2:', f_avg_2(data))
- print('sum/len:', f_div_sum(data, f_len(data)))
- print('sum/2 :', f_div_sum(data, 2))
- print('sum/3 :', f_div_sum(data, 3))
- print('sum/4 :', f_div_sum(data, 4))
Advertisement
Add Comment
Please, Sign In to add comment