Лямбда-исчисление — это теоретическая конструкция, часто используемая для того, чтобы заставить нематематически склонных программистов подчиняться — это и моноиды. Теперь у нас есть Calc Intelligence, исследовательский проект Microsoft по внедрению лямбда в Excel — поговорим о башнях из слоновой кости …
Excel — это инструмент в самом лучшем из возможных способов. Он грязный и приземленный, и мы используем его, чтобы продолжить работу по обработке данных, когда не хватает структуры или повторяемости, чтобы гарантировать более серьезный подход. Да, я знаю, что это не всегда так, но после того, как вы изучили Excel, вы склонны видеть все в виде электронной таблицы, но это точно так же, как если бы вы узнали о SQL и т. Д.
Проект Calc Intelligence является частью Microsoft Research:
«Проект Calc Intelligence в Microsoft Research Cambridge имеет давние партнерские отношения с командой Excel для преобразования формул электронных таблиц в полноценный язык программирования».
Как и многие ученые, они сосредоточены на большой идее, и идея о том, что Excel не является языком программирования и, следовательно, неполным по Тьюрингу, является одной из них. Тот факт, что в Excel есть язык сценариев, делающий его более полным, чем по Тьюрингу, похоже, не учитывается. Точно так же тот факт, что формулы Excel обладают способностью принимать решения и возможностью повторения, также не имеет большого значения в пользу того, чтобы они были фактически полными по Тьюрингу. Даже демонстрация полноты Тьюринга путем реализации машины Тьюринга отвергается как недостойная, потому что она имеет ограниченное количество состояний. Покажите мне настоящую машину Тьюринга, у которой нет ограниченного числа состояний и ленты ограниченного размера …
Итак, предположим, вы хотите расширить формулы Excel, чтобы получить некоторую полноту Тьюринга в нескольких ячейках — как бы вы это сделали? Просто добавьте к функциям язык программирования, разрешающий циклы, и, возможно, способ определения новых функций, хотя это не является строго необходимым. На самом деле Microsoft Research реализовала форму лямбда-исчисления, которая, по общему мнению, является математической нотацией, используемой в компьютерных науках для доказательства вещей, которые зачастую изначально очевидны.
Большинство программистов не знают лямбда-исчисления, и им не нужно его знать. Единственное, с чем они, вероятно, сталкиваются, — это то, что его имя используется для лямбда-функций. Вызов автономной однострочной функции лямбда-функцией примерно так же глуп, как вызов JavaScript Java-Script. В обоих случаях эта связь крайне незначительна.
Идея использования лямбда-исчисления в Excel для расширения возможностей работы с формулами будет загадкой для многих программистов, но исследователи пишут:
«Более того, LAMBDA — это настоящая лямбда, которую мы знаем и любим: лямбда может быть аргументом для другой лямбды или ее результатом; вы можете определять числа Чёрча; лямбды могут возвращать лямбды, поэтому вы можете выполнять каррирование; вы можете определить фиксированный -точечный комбинатор, использующий LAMBDA и, следовательно, записывающий рекурсивные функции, и так далее. »
Все, что я могу сказать, это то, что если это имеет для вас какой-то смысл, вам действительно следует использовать Haskill, а не Excel.
Лямбды сложно оценить, но не бойтесь:
«Более того, даже если для создания лямбда требуются большие навыки и знания, для его вызова не требуется дополнительных навыков. LAMBDA позволяет опытным авторам расширять Excel с помощью функций, специфичных для области приложения, которые легко становятся частью Excel их коллегам, которые просто позвоните им «.
Так что, если вы недостаточно сообразительны, чтобы понимать лямбда-исчисление, вы можете просто использовать его как тупую обезьяну … Мы все знаем, чем это заканчивается. Таблицы достаточно опасны, но не делают их сверхопасными из-за академической обфускации.
Короче говоря, это не практическое решение, и это проблема, которой, вероятно, даже не существует.
Было бы разумнее поместить Лисп в ячейку электронной таблицы, и это тоже глупая идея!
Перед нами академическая диковинка — настольное украшение или игрушка. Некоторых людей, достаточно умных, чтобы распознать лямбду, когда они ее видят, это может позабавить, но это не так.
Майк Джеймс — автор «Руководства программиста по теории», целью которого является неформальное и информативное представление фундаментальных идей информатики, включая полноту Тьюринга и лямбда-исчисление.