This made me literally laugh out loud for way too long. This is the dumbest and most awesome thing I've seen in a while. I love it.
Also doesn't seem to have been modified for 5 years.
Sage advice indeed.
*) I remember Jeff Goldblum saying something along those lines, though I imagine the quote could've come from someone else.
It is also a way to give employees motivation.
How else do do figure of “what you don’t know that you know”?
[0]: https://mrthefakeperson.github.io/Excel-Virtual-Machine/
Here is a video of a doom-alike in excel, explained by someone with a bird on his head. He's not clippy, but a real person with a bird on his head. [1]
Here is a video displaying a walk-through of the Excel easter egg that showed the Hall of Tortured Souls! [2]
I know very little Excel, but can’t you create a loop with it?
Anyhow, we use https://github.com/handsontable/hyperformula to run calculations in our other components these days.
This is totally contrived, but I want to believe that this project is a learning project that the creator started to use F# to write a compiler. Perhaps the creator is experienced with imperative programming using C and wanted to do more programming in F#
The reason to do such a thing is that implementing a compiler in a functional programming language results in very elegant functional code. There's an "Aha!" moment when you drop the imperative way of thinking and see how functional thinking can be expressive and concise, yet so very different
I could see myself doing the same thing. It's a seductive intellectual challenge, difficult but achievable, to learn functional programming and write a compiler from scratch
[1] https://www.andrew.cmu.edu/user/twildenh/PowerPointTM/Paper....
// initial
A1 = 0
A2 = 100 (the limit)
A3 = =A3+A1 (self referential, 0 initial)
// somehow
A1 = 1
A2 = 100
A3 = =A3+A1 == 1
If you could refer to previous values it might be possible, but would also force some synchronization into the process that might be problematic. Like you'd need A1 to only update after A3 has had a chance to read it, then the next, then the next.Or solver.
Options exist for iterations and maximum change directly with circular references.
https://bettersolutions.com/excel/formulas/circular-referenc...
Adding in indirect/offset/lookups/indexes etc - I've gotten surprisingly far.
I'm also OK doing VBA BUT the MAJOR downside of VBA - horrendous to share it and got worse over time for security reasons.
Excel without VBA - you can give the "program" to anyone, and almost anyone can use it (and in a pinch change it).
The reason being Excel is a tool designed for performing operations on tabular data not designed for general data programming. If you needed programming there was always VBA which was proper so they never wanted to muck it up. LAMBDA made its way in because people wanted reusable function compositions for their tabular data without having to enable the security PITA that is allowing full macros/VBA which can do a lot more than interact with just the data inside the spreadsheet.
Additionally if only data transformations are required, there is the F# inspired Power Query.
offsets and indirects also exist in that twilight zone being volatile functions.
these three combined can bring down a reasonably sized spreadsheet.
Excel Oriented Programming is a thing.
/ducks
What I would bet a respectable sum on is that you can't parse/process/interpret even the simplest recursive languages (e.g. arithemtic, Expr ::= Expr + Expr | NUMBER) from pure Excel. Forget expressing the algorithm, there isn't even a suitable data structure to iterate over.
IIRC it made extensive use of lookup tables, both building them and being driven by them.
It wasn't a complete implementation, but it proved the theory and scratched an itch.
I can see what you mean about it scratching an itch. Definitely piqued my interest!
(Varying "citation needed" didn't quite convey genuine curiosity the way I thought it would.)
There was a Windows 95 screen saver that was Doom like though.
95 had the “Hall of Tortured Souls”—a 2.5D first-person walker—which was more Doomlike.
I once worked on an early era "smart" phone whose apps were written in a visual basic-like clone. We were silicon valley cool kids and thought people would love too write apps in a high level language rather than C or C++. This was pre-web, pre-javascript, pre-Android, pre-iOS. The large Japanese tech company putting the phone out was staffed by a bunch of electrical engineers whose idea of programming was a table driven state machine, so they used Excel to model the UI for the entire phone as one huge state machine, then wrote Excel basic that took that spreadsheet and generated the proprietary basic code for the device's UI. We thought they'd want to write basic code, but they wanted to code up a spreadsheet instead.