Tictactoe in PyFL, my experimental functional language

I wrote a program to play unbeatable tictactoe in my experimental functional language PYFL. (PYFL = Python based functional language; henceforth PyFL) Of course writing a tictactoe player is hardly… | Continue reading


@billwadge.wordpress.com | 2 years ago

Parametric Programming – an equational approach to OO and beyond

A very long time ago I had an interesting if flawed idea. The idea was to (optionally) replace instances of expression constructs with equations defining or referring to components of conventional … | Continue reading


@billwadge.wordpress.com | 2 years ago

Six Pillars of Wisdom: lesser versions of famous books

Recently my friend Michael Levy had a very clever idea. It was to publish cheaper versions of well-known books, the idea being that they would be basically the same but slightly altered to avoid co… | Continue reading


@billwadge.wordpress.com | 2 years ago

Functional ‘while’ loops – no, really

As I’ve explained I invented and implemented a small functional language (PYFL) to test out some ideas. In particular one idea is the (oxymoronic) functional while loop. A while loop? In a fu… | Continue reading


@billwadge.wordpress.com | 2 years ago

PYFL Output: the magic of simple side effects

As I’ve already explained I’ve invented and implemented an experimental functional language – PYFL (PYthon based Functional Language) – to try out some ideas. For example, P… | Continue reading


@billwadge.wordpress.com | 2 years ago

Monads Schmonads: Functional Input Without Tears (PYFL)

As I already explained, I’ve invented and implemented a simple functional language (PYFL) with a few interesting twists. Including a promising but simple approach to input. | Continue reading


@billwadge.wordpress.com | 2 years ago

PYFL: Putting the fun back in functional programming

Haskell has been both a blessing and a curse for Functional Programming (FP.) A blessing because it has allowed many thousands to experience FP firsthand – by writing functional programs. The… | Continue reading


@billwadge.wordpress.com | 2 years ago

Dimensionality – time sensitivity

Dimensionality is a big issue with multidimensional Lucid – it means figuring out which dimensions are relevant to calculating the values of a variable. It’s a simple idea but surprisin… | Continue reading


@billwadge.wordpress.com | 3 years ago

Introduction to Infinity/Ies

To infinity and beyond! —- Buzz Lightyear (Toy Story) Lots of people have trouble with mathematics. They fear many things: null objects (like the empty set); hierarchies (e.g. sets of sets or… | Continue reading


@billwadge.wordpress.com | 3 years ago

Intensional Logic in Context – from philosophy to technology

The most pervasive fallacy of philosophic thinking goes back to neglect of context.Jon Dewey What exactly is “intensional programming?” The easy answer is, programming in a language based on intens… | Continue reading


@billwadge.wordpress.com | 3 years ago

Just Funnin’ – the infamous “Cowboys” section of the Lucid book

[This is the infamous section of the book Lucid the Dataflow Programming Language where I make fun of everyone working on imperative languages. It was very popular but many people hated it even tho… | Continue reading


@billwadge.wordpress.com | 3 years ago

Wadge Degrees – The Origin Story

I’m fortunate enough to have a mathematical concept named after me. And not just Wadge degrees. There’s also the Wadge hierarchy, Wadge reducibility, and the Wadge game. In fact I’… | Continue reading


@billwadge.wordpress.com | 3 years ago

I/O Without Side Effects – The Lucid Experience

Everything you know is wrong.— Firesign Theater Everybody knows that output requires side effects. The logic is irrefutable. When an output occurs, something changes. There is a number on the… | Continue reading


@billwadge.wordpress.com | 3 years ago

Boy Wonder – my early (mis)adventures with science and technology

My first memory of being interested in science was when I was ten years old, in grade six  in Penticton (in Ottawa I’d done grades 3 and 4 in one year). Also my first experience with failure.… | Continue reading


@billwadge.wordpress.com | 3 years ago

Top of the Pops – my top successful posts ranked and annotated

What makes a Blog post successful? Don’t know, really, but I’m happy to share my knowledge with you. I’ve been lucky – I have  31 posts that have been successful according t… | Continue reading


@billwadge.wordpress.com | 3 years ago

Lucid – the origin story

I’ve already written about the origins of Lucid but that was a dry, technical, and incomplete post. Here is the real story, with all the drama and passion, the thrill of victory, the agony of… | Continue reading


@billwadge.wordpress.com | 3 years ago

Monads and Intensionality – Lucid is not an aberration

Be ahead of your time, but only a little. – Mason Cooley Do you understand  monads? I don’t, so I  thought I’d explain them to you. Then, once you’ve got it, I’ll re-e… | Continue reading


@billwadge.wordpress.com | 3 years ago

The Sin of Sloth – an external module system for C

A while back John Plaice and I invented an external module system for C . It worked pretty well for us but never caught on. Maybe it will be of some use to some of you. Sloth was part of an insanel… | Continue reading


@billwadge.wordpress.com | 3 years ago

Designing for the Future: what my ancestors taught me

When I was a grad student at UC Berkeley I got first-hand experience with the one of the  strategies of successful software development – write for the future. The weird thing was, I wasnR… | Continue reading


@billwadge.wordpress.com | 3 years ago

Write for the Future – if you can get away with it

The title of my previous post, Software Development: the Secret of Success, was originally meant to be tongue in cheek, as you might have guessed. Like that of another post, The Secret  of Academic… | Continue reading


@billwadge.wordpress.com | 3 years ago

Software Development: The Secret of Success

Recently I revealed the secret of academic success. This was so popular (16000 views!) that I decided I would follow up with the secret of software success – success in producing software. No… | Continue reading


@billwadge.wordpress.com | 4 years ago

The Intensional Spreadsheet

A while back Weichang Du and I designed a spreadsheet based on intensional logic, the  logic of values that vary over a coordinate space. Spreadsheets are a natural fit for ‘intensifying̵… | Continue reading


@billwadge.wordpress.com | 4 years ago

Punched Cards? Sheer Bloody Luxury

by Bill Wadge And you try and tell the young people of today that … they won’t believe you! – Monty Python, the Four Yorkshiremen Yes, punched cards – that’s how I  le… | Continue reading


@billwadge.wordpress.com | 4 years ago

In This Talk

by Bill Wadge Academics love to talk, talk, talk … and to give “talks”. I was no exception. Sometimes they went well, sometimes not so well … and sometimes they went weird. … | Continue reading


@billwadge.wordpress.com | 4 years ago

Markup Macro Processor

by Bill Wadge The Markup Macro Processor (MMP) is a text based macro system that uses a markup-like syntax, similar to (but much simpler than) XML. | Continue reading


@billwadge.wordpress.com | 4 years ago

Branching Time Iteration

By Bill Wadge In the original Lucid language, the index domain (the set of natural numbers) was thought of as a set of time points-Lucid was designed as a temporal functional programming language. … | Continue reading


@billwadge.wordpress.com | 4 years ago

Top Science and Technology Screwups

These days we are often told to listen to science and embrace technology. The idea is that science is objective and fact-based and technology is “progress” that will make our lives bett… | Continue reading


@billwadge.wordpress.com | 4 years ago

Top Science and Technology Screwups (10-6)

These days we are often told to listen to science and embrace technology. The idea is that science is objective and fact-based and technology is “progress” that will make our lives bett… | Continue reading


@billwadge.wordpress.com | 4 years ago

Top science and technology screw-ups

  [This is the bottom (worst) half of a top ten list. The first 5 are here.] 5. Mercury, asbestos, lead. These could have been separate points but they’re basically the same story: deadl… | Continue reading


@billwadge.wordpress.com | 4 years ago

Bill Wadge on Writing Grant Applications

I’m good enough, I’m smart enough, and dog-gone it, people like me. Stuart Smalley  (Al Franken) For two years I was on the Canadian NSERC committee that reviewed individual grant applications. Fas… | Continue reading


@billwadge.wordpress.com | 4 years ago

Wadge Degrees

When I was a young grad student at UC Berkeley, I invented what are now called “Wadge degrees”. Not to mention “Wadge reducibility”, “Wadge games”, “Wadge&… | Continue reading


@billwadge.wordpress.com | 4 years ago

The secret of academic success, or fun filled failure if you prefer

In my research career I’ve discovered many things, including the secret of academic success (too late to help my own career). I’m  going to share the secret  with  you. | Continue reading


@billwadge.wordpress.com | 4 years ago

Map/Reduce for Mortals

Suppose you want the sum of the squares of the  elements of a list congruent to 1 mod 3 you can write reduce(lambda t,x t+x,map(square,filter(lambda x: x % 3 == 1,[1,2,3,4,5]))) Clear? As mud ̷… | Continue reading


@billwadge.wordpress.com | 4 years ago

PyLucid – A Lucid Interpreter Written in Python

I was  feeling energetic so I wrote a Lucid interpreter. I used Python and it turned out pretty well. Lucid has been around for donkey’s years but for a long time there’s been no public… | Continue reading


@billwadge.wordpress.com | 4 years ago

Double Slit Experiment No Mystery

How can you be in two places at once When you’re not anywhere at all — Firesign Theater [Note: this is NOT original research. I just read the right book] The famous double slit experime… | Continue reading


@billwadge.wordpress.com | 4 years ago

Multidimensional Dataflow (2017)

As I’ve already explained, Lucid can be understood as functional programming with an added time dimension. What about other dimensions? In particular, what about a space dimension? The late E… | Continue reading


@billwadge.wordpress.com | 4 years ago

Neofictionalism: The Greatest Story Ever Told

In the last post I proposed the “neofictionalist” account of mathematics: that the mathematical universe is a collective fiction (like Lord of the Rings, Star Trek or GOT) but about whi… | Continue reading


@billwadge.wordpress.com | 4 years ago

Where is π today? The nature of the mathematical universe

Continue reading


@billwadge.wordpress.com | 5 years ago

One Day in the Greece (Bill Wadge's Blog)

I’ve been to Greece often enough that I’ve picked up a bit of (modern) Greek. Like anyone in  my situation, I’ve had fun spotting Greek words with Englishs cognates based on Greek… | Continue reading


@billwadge.wordpress.com | 5 years ago

B Before A

Remember this Wadge’s Law Whenever you want to do something, there’s always someone who says there’s something else you have to do first. Call  the thing you want to do A, the thi… | Continue reading


@billwadge.wordpress.com | 5 years ago

Laws of the Universe and Teaching

Time for another break from research (at least the normal kind). I seem to be always discovering fundamental Laws of the Universe, especially about teaching. I’d like to share some of them wi… | Continue reading


@billwadge.wordpress.com | 5 years ago

Laws of the Universe and Teaching

Time for another break from research (at least the normal kind). I seem to be always discovering fundamental Laws of the Universe, especially about teaching. I’d like to share some of them wi… | Continue reading


@billwadge.wordpress.com | 5 years ago

Negative Time Iteration

Lucid is based on a simple temporal logic. The time model follows from formalizing iteration as it appears in imperative programs with, say, while or for loops. In this model there is a first or in… | Continue reading


@billwadge.wordpress.com | 5 years ago

Programming With End-Of-Data

In the last post we introduced eod (end-of-data), a special sentinel value used to mark the end of a finite Lucid stream. Streams in Lucid are all formally infinite (non terminating) but we can use… | Continue reading


@billwadge.wordpress.com | 5 years ago

Finite and Infinite in Lucid2D

Lucid2D is Lucid with both time and space dimensions, as discussed in my last blog post. Program variables denote intensions that can be thought of as streams of arrays. Infinite streams of infinit… | Continue reading


@billwadge.wordpress.com | 5 years ago