TABLE OF CONTENTS
Introduction to AcceλerateTM for Microsoft 365
This brief chapter will introduce you to the key concepts essential for getting the most out of your investment in Acceλerate for Microsoft 365.
Acceλerate for Microsoft 365 is a tool for transforming your desktop data silos and document artifacts into shareable data assets that can run on your network or in the cloud. It employs a three-pronged strategy for helping you to achieve this objective:
Fully embrace the functional computational model to extend the power and reach of your workbooks, databases and data-intensive document artifacts beyond their usual application boundaries;
Fully adopt the linked-data information model to ensure your solution plays like a good web citizen in an era of interoperability that is just around the corner;
Fully adapt your data management practices to the Web as it was intended to be shared and experienced—as a decentralized information hub that allows individuals to collaborate and interoperate over vast geographic distances in split seconds.
The other major concept introduced here that you need to learn is the notion of a “lambda expression.” The ”λ” in Acceλerate refers to this notion of a “lambda” as a custom function. The term lambda expression comes from a branch of mathematics that also has one foot in computer science known as lambda calculus, and it forms the basis of all modern computing machines. Programming languages are all designed around its principles.
Even if you are an avid Excel user, you may not be aware of the fact that Microsoft is embracing this notion in the latest major version of Excel in Microsoft 365, with a new function called LAMBDA, that works in the familiar Excel function/formula context. It is touted as a feature to create custom functions “without programming” and is aimed at making it possible to re-use formula expressions as “reusable functions.” While it may be a great choice for some of your custom function writing needs, and we highly encourage everyone to learn this new feature, we have something more general in mind.
As such, the lambda functions provided in Acceλerate for Microsoft 365, described in detail in this guide, are intended to complement, not compete with, Microsoft’s LAMBDA function. Our Lambda functions were designed with a different set of objectives altogether, centered around the vision we allude to above: specifically, to extend the reach of functionality in your desktop document artifacts and data silos beyond the applications in which they were created, and to pull in tools, resources and talent from outside the traditional Microsoft Office ecosystem to help solve the problem of data interoperability existing artifacts typically present to IT departments in large enterprises.
Acceλerate for Microsoft 365 should, therefore, increase the return on your investment in the many spreadsheets, databases, and documents that you’ve built over the years in Microsoft’s Office products.
What is AcceλerateTM?
Acceλerate for Microsoft 365, the first in a planned suite of tools, is an add-in to the popular Microsoft 365 suite of Office products. Acceλerate provides tools for extending Excel with a powerful new computing model that enables novel strategies to leverage Office documents and desktop artifacts as shareable enterprise assets. Compatible with versions of Microsoft Office 2016 and up, including the latest Microsoft 365 suite, the initial functionality focuses on Excel, but will eventually include all of the applications included in the suite (Excel, Access, Word, Outlook, OneNote, PowerPoint, Project, etc.) that support extensibility through the add-ons feature shared by most of them.
We have a long-term vision for “modernizing” enterprise utilization of Microsoft Office/Microsoft 365 documents and other desktop data artifacts. Acceλerate for Microsoft 365 encompasses the initial component to that modernization, which is to open the Excel spreadsheet calculation engine to the full power of the dynamic functional programming paradigm, backed by the vast ecosystem of the .NET framework. We do this by making IronScheme, an implementation of Scheme built for .NET, a first-class language for writing custom functions and libraries of code that automate data-intensive tasks. Future editions of Acceλerate will incorporate additional Office applications as well as the other two components in greater depth.
Fully Embracing the Functional Paradigm
Long-time users of Excel have been doing functional programming from the very early days of spreadsheet development. Excel’s flavor of this style of programming has been mainly visual, point-and-click and centered around placing computations in the form of user formulas utilizing predefined functions in cells that can refer to each other in arbitrarily complex dependency graphs. The calculation engine knows how to compute these dependency graphs in real-time to produce correct results, giving immediate feedback as the spreadsheet developer evolves the functionality of a workbook in successive, interactive, and often collaborative iterations.
The recently introduced Microsoft Excel LAMBDA function is aimed at power-users who are used to writing complex function expressions in the formula bar of Excel, but who are perhaps not so comfortable with coding in more general-purpose programming languages. For “general purpose programmers,” the Visual Basic for Applications (VBA) programming language is available and has traditionally been used to define custom functions, in addition to many other automation-specific activities.
Acceλerate for Microsoft 365 offers a third, complementary way to bring automation to the Office suite, with somewhat different goals and engineering characteristics - to provide an orthogonal extensibility capability that addresses different use cases, mainly, but not exclusively, related to the problem of data interoperability.
The Four Functions of Acceλerate for Microsoft 365
Acceλerate for Microsoft 365 introduces four new Excel functions that provide an alternative way to create user-defined or custom functions using a dialect of the Lisp programming family of languages called IronScheme, an implementation of the Scheme programming language on .NET. We refer to our integration of IronScheme into Microsoft 365 and enhancements we have made as Visual Scheme for ApplicationsTM ("Visual Scheme®" or “VSA®”) because we intended over time to make the user experience as broad and deep and as simple as the experience provided via Visual Basic for Applications (VBA).
These four functions, which are defined in more detail in The Lambda Functions section of Becoming Productive with Acceλerate for Microsoft 365, are:
λ - This function executes an arbitrary lambda expression, which may take zero or more parameters.
define - for giving a reusable name to a lambda expression. The difference here is that the name you give it can be reused. This is different from, but complimentary to, the Excel concept of a named cell or region, which we also support.
eval - for evaluating a defined (named) lambda expression or a reference to a cell that returns such an expression.
apply - for calling lambda expressions that expect variable input (such as a range or list of data). This has the same semantics as the Scheme ‘apply’ function.
We offer two REPLs with Acceλerate for Microsoft 365 - one built into Excel in a custom pane for developing lambda expressions interactively and using them in a spreadsheet model; and another at the command line, with convenient access from the Ribbon, for developing shareable libraries of Scheme code, accessible to lambdas in Excel and to general purpose scripts you write across multiple Office applications and document instances.
The following terms are registered trademarks of the Microsoft group of companies and are used in accordance with Microsoft’s Trade and Brand Guidelines: Microsoft, Microsoft 365, Microsoft Office, Microsoft Excel, Microsoft Edge, Microsoft Edge WebView2, Microsoft Windows, Excel, Office 365
Copyright © 2022. Apex Data Solutions, LLC. All Rights Reserved.