{"id":31526,"date":"2021-02-03T16:27:53","date_gmt":"2021-02-03T21:27:53","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=31526"},"modified":"2021-02-05T00:18:49","modified_gmt":"2021-02-05T05:18:49","slug":"lambda-the-ultimate-excel-worksheet-function","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2021\/02\/03\/lambda-the-ultimate-excel-worksheet-function\/","title":{"rendered":"LAMBDA: The Ultimate Excel Worksheet Function"},"content":{"rendered":"<p><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/blog\/lambda-the-ultimatae-excel-worksheet-function\/\">Andy Gordon and Simon Peyton Jones<\/a>:<\/p>\n<blockquote cite=\"https:\/\/www.microsoft.com\/en-us\/research\/blog\/lambda-the-ultimatae-excel-worksheet-function\/\"><p>The <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/project\/calc-intelligence\/\">Calc Intelligence<\/a> project at Microsoft Research Cambridge has a long-standing partnership with the Excel team to transform spreadsheet formulas into a full-fledged programming language. The fruits of that partnership are starting to appear in the product itself. At the 2019 ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2019), we <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/blog\/influencing-mainstream-software-applying-programming-language-research-ideas-to-transform-spreadsheets\/\">announced two significant developments<\/a>: <a href=\"https:\/\/www.youtube.com\/watch?v=gbImc7A8_Q8\">data types<\/a> take Excel beyond text and numbers and allow cells to contain first-class records, including entities linked to external data, and <a href=\"https:\/\/techcommunity.microsoft.com\/t5\/excel-blog\/preview-of-dynamic-arrays-in-excel\/ba-p\/252944\">dynamic arrays<\/a> allow ordinary formulas to compute whole arrays that spill into adjacent cells. These changes are a substantial start on our first challenge: rich, fully-first-class structured data in Excel.<\/p><p>In December 2020, <a href=\"https:\/\/techcommunity.microsoft.com\/t5\/excel-blog\/announcing-lambda-turn-excel-formulas-into-custom-functions\/ba-p\/1925546\">we announced LAMBDA<\/a>, which allows users to define new functions written in Excel&rsquo;s own formula language, directly addressing our second challenge. These newly defined functions can call other LAMBDA-defined functions, to arbitrary depth, even recursively. With LAMBDA, Excel has become<em> Turing-complete<\/em>. You can now, in principle, write <em>any <\/em>computation in the Excel formula language. LAMBDA is available to members of the Insiders: Beta program. The initial release has some implementation restrictions that we expect to lift in the future. We discussed LAMBDA and some of our research on spreadsheets in a sponsored video presented at <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/event\/popl-2021\/\">POPL 2021<\/a>.<\/p><\/blockquote>\n\n<p>See also: <a href=\"https:\/\/www.wisdomandwonder.com\/link\/3022\/why-church-chose-lambda\">Why Church chose lambda<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Andy Gordon and Simon Peyton Jones: The Calc Intelligence project at Microsoft Research Cambridge has a long-standing partnership with the Excel team to transform spreadsheet formulas into a full-fledged programming language. The fruits of that partnership are starting to appear in the product itself. At the 2019 ACM SIGPLAN Symposium on Principles of Programming Languages [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2021-02-03T21:27:56Z","apple_news_api_id":"d06ff04f-432f-41d8-9f2b-50561f4f329b","apple_news_api_modified_at":"2021-02-05T05:18:53Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAA==","apple_news_api_share_url":"https:\/\/apple.news\/A0G_wT0MvQdifK1BWH08ymw","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[4],"tags":[263,46,30,32,1891,609,71],"class_list":["post-31526","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-theory","tag-languagedesign","tag-mac","tag-macapp","tag-macos-11-0","tag-microsoft-excel","tag-programming"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/31526","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=31526"}],"version-history":[{"count":2,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/31526\/revisions"}],"predecessor-version":[{"id":31546,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/31526\/revisions\/31546"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=31526"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=31526"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=31526"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}