![]() ![]() ![]() But the actual engineering development of computers and computing has tended to keep different aspects of it apart. And indeed the foundational symbolic structure of the Wolfram Language-and much of what I’ve personally built over the past 40 years-can ultimately be seen as deeply informed by ideas that first arose in combinators.Ĭomputation may be the single most powerful unifying intellectual concept ever. Still, as computation and the computational paradigm advance, and become more familiar, it seems like on many fronts we’re moving ever closer to core ideas of combinators. But they’re also very hard for us humans to understand. Now that a century has passed, what should we think of combinators? In some sense, they still might be the purest way to represent computation that we know. But basically, since we know that rule 110 is computation universal, this shows that combinators also are. There’s a little further to go, involving fixed-point combinators, etc. Then we’ll get a sequence of combinator expressions:Īnd, here from the book, are representations of repeatedly applying this combinator to compute-with great effort-three steps in the evolution of rule 110: Here’s an (at first bizarre-seeming) way to do that. The first question is: how should we represent the “something”? Well, the obvious answer is: just use structures built out of combinators!įor example, let’s say we want to represent integers. Let’s say we want to use combinators to do a computation on something. ![]() But I’ve always thought that of all systems, combinators were perhaps the earliest great “near miss” to what I’ve ended up discovering in the computational universe. They’re examples of very simple computational systems that turn out (as we’ll see at length here) to show the same remarkable complexity of behavior that I’ve spent so many years studying across the computational universe.Ī century ago-particularly without actual computers on which to do experiments-the conceptual framework that I’ve developed for thinking about the computational universe didn’t exist. Īnd, yes, it’s no accident that it’s extremely easy and natural to work with combinators in the Wolfram Language-because in fact combinators were part of the deep ancestry of the core design of the Wolfram Language.įor me, though, combinators also have another profound personal resonance. Thus a lambda term is valid if and only if it can be obtained by repeated application of these three rules.✕ s]]]]]]]]]] //. x is a lambda term (called an application).In the simplest form of lambda calculus, terms are built using only the following rules: Lambda calculus consists of constructing lambda terms and performing reduction operations on them. It was introduced by the mathematician Alonzo Church in the 1930s as part of his research into the foundations of mathematics. It is a universal model of computation that can be used to simulate any Turing machine. Lambda calculus (also written as λ-calculus) is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution. Mathematical-logic system based on functions ![]()
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |