我想学习使用Lua的函数式编程。我有一个Java背景。 我想用递归方法构建一个链。在Java中,我会这样做:如何在函数式编程中实现带隐藏参数的函数?
//Java
public Link buildChain() {
return buildChain(null, 0, 100);
}
private Link buildChain(Link parentLink, int count, int length) {
Link link = new Link();
link.setParentLink(parentLink);
if(count != length) {
link.setChildLink(buildChain(link, count+1, length));
}
return link;
}
而显然我会有一些类链接。
现在我将如何实现这一功能风格?该类链接将是一个表(在Lua中),存储父链接和子链接以及Link需要的任何其他内容。但是,我将如何做这两个功能? 我会使用闭包(尽管私有方法不使用公共方法的局部变量)还是一种倒置的咖喱?或者只是模式匹配?
任何提示和解释将非常感激。 哦,我很难找到这个问题的标题 - 如果你有更好的主意,请说出来。