Я пытаюсь научиться функциональному программированию на 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.
Теперь, как мне реализовать это в функциональном стиле?Этот класс Link будет таблицей (в Lua), хранящей родительскую и дочернюю ссылку и все остальное, что нужно для ссылки.Но как бы я сделал две функции?Буду ли я использовать замыкание (хотя закрытый метод не использует локальные переменные общедоступных) или вид перевернутого каррирования?Или просто сопоставление с образцом?
Буду очень признателен за любые советы и объяснения.О, и мне было трудно найти название для этого вопроса - если у вас есть идея получше, скажите, пожалуйста.