我一直在环顾四周,找不到这样的例子,我所有的语法摔跤技巧都让我失望了。有人可以告诉我如何编译吗?我的 ,s ;s 或 .s 是错误的我猜想定义一个嵌套函数......
我知道已经有一个用于进行字符串替换的函数,所以我不需要实现这个,但我正在玩 Erlang 试图拿起它,所以我正在手动旋转一些我需要使用的基础知识。 .
replace(Whole,Old,New) ->
OldLen = length(Old),
ReplaceInit = fun(Next, NewWhole) ->
if
lists:prefix(Old, [Next|NewWhole]) -> {_,Rest} = lists:split(OldLen-1, NewWhole), New ++ Rest;
true -> [Next|NewWhole]
end,
lists:foldr(ReplaceInit, [], Whole).
基本上我正在尝试编写这个haskell(也可能很糟糕,但超出了重点):
repl xs ys zs =
foldr replaceInit [] xs
where
ylen = length ys
replaceInit y newxs
| take ylen (y:newxs) == ys = zs ++ drop (ylen-1) newxs
| otherwise = y:newxs