Home > Backend Development > Python Tutorial > Recursive implementation of map filter reduce in Python

Recursive implementation of map filter reduce in Python

高洛峰
Release: 2016-10-18 14:32:57
Original
1331 people have browsed it

map2=lambda f,seq: [] if seq==[] else [f(seq[0])] + map2(f, seq[1:])
  
filter2=lambda f, seq: [] if seq==[] else ( [seq[0]]+filter2(f, seq[1:]) if f(seq[0]) else filter2(f, seq[1:]) )
  
reduce2=lambda f,seq,x: x if seq==[] else reduce2(f, seq[1:], f(x, seq[0]))
  
scanl=lambda f,seq,x: [x] if seq==[] else  [x] +scanl(f, seq[1:], f(x,seq[0]))
  
  
print map2(str, [1,2,3,5,8])
print filter2(lambda x: x%2==0, range(10))
print reduce2(lambda x,y: ''.join( ['(',x,'+',y,')'] ), map(str,range(1,11)), '0')
print scanl(lambda x,y: ''.join( ['(',x,'+',y,')'] ), map(str,range(1,5)), '0')
  
  
#Out:
#['1', '2', '3', '5', '8']
#[0, 2, 4, 6, 8]
#((((((((((0+1)+2)+3)+4)+5)+6)+7)+8)+9)+10)
#['0', '(0+1)', '((0+1)+2)', '(((0+1)+2)+3)', '((((0+1)+2)+3)+4)']
Copy after login

Recursive implementation of map filter reduce in Python, note: be careful of memory overflow

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template