Когда я несколько лет назад проходил курс по программированию функций в университете, мы узнали об этом шаблоне программирования, где у вас есть функция, которая принимает X аргументов, а затем вы определяете другую функцию, которая принимает только аргументы X-1 и устанавливает последний - как константа.
Пример (python):
createTensor = lambda x,y,z: [[[0 for _ in range(x)] for _ in range(y)] for _ in range(z)]
createMatrix = lambda x,y: createTensor(x,y,1)
createVector = lambda x: createMatrix(x,1)
Было бы интересно услышать, как будет вызываться такая функция.