【发布时间】:2011-04-08 04:04:40
【问题描述】:
我正在尝试使用 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;
}
显然我会有一些类链接。
现在我将如何以函数式风格实现它?该类 Link 将是一个表(在 Lua 中),存储父链接和子链接以及 Link 需要的任何其他内容。但是我将如何执行这两个功能? 我会使用闭包(尽管私有方法不使用公共方法的局部变量)还是一种反向柯里化?还是只是模式匹配?
非常感谢任何提示和解释。 哦,我很难找到这个问题的标题——如果你有更好的主意,请说出来。
【问题讨论】:
标签: functional-programming lua