以前想不通,今天在写代码时不知怎么的,偶然就发现了答案..
比如说把某个字符串s中所有"00"及更长的'00'统统换为'0'.最后结果中不能包含'00'.
00001100-->0110
显然,s.replace('00','0')是不够的.
命令式解法:
def wrapperI(v):
while 1:
if '' in v:
v=v.replace('','')
else:
break
return v
函数式解法:
def wrapperF(v):
if '' in v:
return wrapperF(v.replace('',''))
return v
另外,我觉得这简直可以作为一个经典的编程风格差异的诠释.
对于保存和改变数据状态:
命令式编程通过赋值
函数式编程通过参数