The “strings as expressions” was actually sort of a side-effect in the parser. It simply sent anything that started with a zero, or any user input in ASK, into the decimal-to-binary number parser. Since the character set on the PDP-8 was six-bit and A was value 1, any character input was automatically treated as a numeric value and parsed as it if were a digit. Actual digits were character codes starting at 60, so basically >60 code-=60 and anything else goes right through. The result is a hash with collisions, but it is numeric.
It did work, in that it let the user type in something like “YES” and then you could see if they did that by comparing the numeric value to “0YES”, but this still strikes me as a hack. There were no string values, variables or functions, and all of that sort of thing had to be done numerically and character by character.
Note that Altair BASIC did include string support that we are all familiar with, and did so before this version of FOCAL seems to have been released. There’s no reason that they couldn’t have used the same FOCAL-like parser in a BASIC for almost no extra cost.
And I say this only because mostly every other feature in FOCAL is worse than BASIC. FOR loops only work on a single line, there’s no equivalent of NEXT. IF statements can only perform branches, not arbitrary code, so it’s total spaghetti. And the IF and FOR syntax is just FORTRAN’s, so is that middle one the step or the limit, and how do I test >0?
The one interesting thing from JOSS that survived is the line numbering scheme. Line numbers consist of two two-digit parts with a decimal, so in FOCAL it’s 01.01 to 31.99. The first part is the “group” and the latter it seems DEC never agreed on a name - I’ve seen line, specific line, statement number etc.
The reason I think this is cool is that when you look at FOCAL programs, they are invariably easier to read than the exact same code in BASIC. As you scan down the code you can immediately see the sections because they have different group numbers, whereas in BASIC it’s often just number after number with no pattern unless the programmer wanted that. So for instance, compare Lunar Lander in FOCAL and BASIC - the individual lines in FOCAL are hard to read, but the program as a whole is much more obvious in its layout.