лямбда-исчисление является последовательной математической теорией замещения. В школьной математике можно видеть, например, x+y=5
в паре с x−y=1
. Наряду с путями манипулирования отдельными уравнениями также можно объединить информацию из этих двух, при условии, что подстановки с поперечным уравнением выполняются логически. Lambda calculus кодирует правильный способ выполнения этих подстановок.
Учитывая, что y = x−1
является действительной перестановкой второго уравнения, это: λ y = x−1
означает функцию, заменяющую символы x−1
символом y
. Теперь представьте себе применение λ y
к каждому члену в первом уравнении. Если термин y
, то выполните замену; в противном случае ничего не делать. Если вы сделаете это на бумаге, вы увидите, как применение λ y
сделает первое уравнение разрешимым.
Это ответ без какой-либо компьютерной науки или программирования.
Самый простой пример программирования, о котором я могу думать, исходит из http://en.wikipedia.org/wiki/Joy_ (programming_language) #How_it_works :
вот как квадратная функция может быть определен на императивном языке программирования (C):
int square(int x) { return x * x; }
Переменная x является формальным параметром, который заменяется фактическим значением, которое должно быть квадратично при вызове функции. В функциональном языке (схема) будет определена одна и та же функция:
(define square (lambda (x) (* x x)))
Это по-разному, но по-прежнему использует формальный параметр x таким же образом.
Добавлено: http://imgur.com/a/XBHub
Функция SELECTCOLUMNS
прекрасно работает для этого. Он позволяет вам создавать более сложные вычисляемые столбцы, но вы можете просто использовать сам столбец в качестве определения расчета.
Это должно сработать:
SELECTCOLUMNS(table1, "A", table1[A], "B", table1[B])