我最近做了一个小的算法来从一个代码片段剔除函数参数和只保留最外层的功能。
我发现这个算法是非常容易设计的一种必要的方式。
但是,我真的对函数式编程感兴趣,我想知道如何以功能的方式完成同样的事情。翻译简单势在必行算法功能的风格
这将是对我很大的帮助,如果你能告诉我这种算法可能是如何工作的,所以我可能会如何函数式编程作品一个更好的主意。另外,我想知道您在设计算法时的思维过程。
我在Python作出的必要的版本,但你的答案并不一定要在蟒蛇; Haskell或任何其他语言都可以。
这里是做什么的(以一个字符串作为输入,并返回一个字符串):
"foo(a.d, b.e.fi()).go(sd, ds())" -- returns --> "foo().go()"
"foo(a, b).bar().fuu" -- returns --> "foo().bar().fuu"
"foo.bar" -- returns --> "foo.bar"
这是我的当务之急代码:
def get_rid_of_arguments(text):
i, start, end = 0, 0, 0
result = ""
for j, c in enumerate(text):
if c == '(':
if i == 0:
start = j
result += text[end:start]
i += 1
elif c == ')':
i -= 1
if i == 0:
end = j + 1
result += '()'
return result + text[end:]
以下是您可能会感兴趣的内容。它涉及一个不同的,但相对简单的问题。 http://neilmitchell.blogspot.ie/2013/09/repeated-word-detection-with-haskell.html – mhwombat
你想这样做的实际功能或只是代表功能的文字? – DiegoNolan
@DiegoNolan只是表示函数的字符串。 – Zinggi