Bonum Certa Men Certa

How To Write fig Programs

By figosdev

Young programmer



Summary: This is the second in a two-part series on fig

This is the second in a two-part series on fig, an educational language that I use for other practical purposes.



Because I designed fig for computerphobes, you may decide it has a few odd qualities. One example is that it uses a "plus" command instead of + and a "minus" command instead of -. It also has an inline Python feature, which can be used to import Python functions into fig programs, as well as allow more traditional expressions to be evaluated, if you prefer:

python
    import math
    evaluated = math.sqrt(p ** int(s / 2.5))
    fig


Fig has its own function definition command, which you can use to create functions with Python-like scope:

function greet whom
    now = "Hello, " plus whom ; print
    fig


Fig is the standard command that in Python would be unindenting, and it is named for "return to fig programming" after inline Python. In most instances, you can use "next" if you prefer:

function greet whom
    now = "Hello, " plus whom ; print
    next


You can use this as a wrapper around a python feature like this:

function pi
python
    from math import pi as ppi ; return ppi
    fig
    fig   



r = 50 circumference = pi times 2 times r ; print


In fig, the only mandatory punctuation in syntax is "quotes for strings" and # hashes for comments. Decimal points work the same way they do in Python.

These characters are optional, and for the most part can be freely used to help visually organise your code: = ( ) | ; : ,

The vertical bar can be used to introduce students to Bash. With the exception of a few commands that start on their own line -- such as for, next, forin, ifmore, ifless, iftrue, ifequal, else, break, while, wend -- nearly all fig commands share a line with a variable on the far left:

height = 60 ; plus 5 ; str ; len ; print


height is 60, it adds 5 to become 65, is converted to a string: "65" then the length is found, and 2 is printed to the screen.

As in Python, there are a few ways to create arrays:

titles = "" ; arr ; times 100


This will create an array of 100 string items. you can add items like this:

titles plus "A History of Red Hat: From Cottage Industry to Corporation"


Each time a variable is used on the left, it is set to 0-- arrays are the exception:

now 5 print # prints 5
now print # prints 0
now 5 arr 
now print # prints [5]


You can create an array using split:

ingredients = "milk eggs sugar flour water" ; split ingredients " "


Unlike Python, split and join both put the variable to split or join first -- then the thing to split or join it with:

ingredients = "milk eggs sugar flour water" ; split ingredients " "
ingredients = join ingredients " " ; print


Arrays are 1-based (apologies purists, it's an educational language) and for loops are started with count-variable, start-var, stop-var, step-var:

ingredients = "milk eggs sugar flour water" ; split ingredients " "
howmany = ingredients ; len
for each, 1, howmany, 1
    now = each ; print
    next


Forin loops are started with value-tracking-variable, array:

ingredients = "milk eggs sugar flour water" ; split ingredients " "
forin each, ingredients
    now = each ; print
    next


(nextin can be used instead of next)

Files can be opened with arropen, and webpages with arrcurl:

urls = arropen "urls.txt"
buffer = arr ; mid 1 0 # zero-length array
newline = 10 ; chr 



forin each urls iftrue each geteach arrcurl each ; join geteach newline buffer plus geteach fig nextin


Failed downloads create an error, so add error trapping (no, this is not how you should do this in python -- it is just a simple introduction to error trapping)

try
        geteach arrcurl each ; join geteach newline
        buffer plus geteach
except
        geteach ""
        resume


Finally, you can open geany using fig:

openleafpad = "leafpad &" shell


Or get the output of shell commands into an array:

textfiles = "ls *.txt" arrshell


To compile your fig program, give it a .fig extension and run it this way:

$ fig46.py program.fig



$ ./program.fig.py


To get help on a command, type part of it into the help feature:

$ fig46.py help
print


It will return all commands containing "print" in the name. hit enter instead to list all commands.

This will not work:

$ fig46.py help print


This will:

$ echo print | fig46.py help


All commands:

$ echo | fig46.py help


Fig is based on Python 2 -- as much as the Python Foundation is trying to kill Python 2, I think it is a much friendlier language than the latest Python.

PyPy is Python 2 compatible, and is the interpreter fig will most likely to be paired with in the future. There are two factors being waited on: PyPy is planning to support Pygame (an optional component for fig that lets it do real graphics) and Python 2 is still supported by many distros, not least of all Debian, Devuan and Refracta.

The Python Foundation will officially drop Python 2 on January 1. If you love it anyway, try PyPy.

To make fig use PyPy instead, change the two lines that contain the string "env python2" to "env pypy" and that should do it. You can download fig 4.6 here.

Happy Coding! ⬆

Licence: Creative Commons cc0 1.0 (public domain)

Recent Techrights' Posts

When Short is Way Too Short (Superficiality, Lowering of Entropy)
Demonstrating how truly worthless social control media was all along
NVIDIA's Crisis Has Only Just began
NVIDIA Corp (NASDAQ: NVDA) is set to open in the red tomorrow
IBM Has Destroyed Red Hat and Hashicorp, Insiders Say It's the Usual From IBM:
Bluewashing is a death wave
Techrights Was Right About Slop Destroying Development Communities and Projects
Slop does not improve your project. It kills the community. Without community, what is left? A 'botfarm'?
Intercontinental Brigading - Part XXXXXI - Harassment Law and "Things Are Unfairly Asymmetric" (Exploring the Boundaries of Death Threats and Various Threats From America)
the sort of "technofascism" that our country must learn to confront rather than facilitate
 
Links 15/11/2026: Microsoft Already Emitting Chaff to Distract From Its Catastrophe, Jensen Huang Deemed Just 'Fall Guy' Amid Collapse of the Pyramid Scheme
Links for the day
Gemini Links 15/11/2026: CD Players Live on and Self-Hosting from Home Fallacy
Links for the day
Techrights Hates Slop Bots
They benefit nobody
The Economy is Fine! (If Only for China!)
The future is slop! If not, then it's China's fault! It's "sabotaging" the "Western hey hi" in this "hey hi arms race!"
"IT" as "Musical Chairs" (on the Deck of The Titanic)
Each generation will get worse for "IT"
Salesforce in Trouble, Debt Nearly Quadrupled in 9 Months
Salesforce is perishing in a deep pool of debt
"Microsoft is Next IBM"
The words of a Microsoft insider and responses to that
IRC is Decentralised
Bye, Microsoft Teams/Skype
Links 15/11/2026: Murdoch's "WSJ Buries Stephen Miller's Racism" and "America Has Entered a New Age of Propaganda"
Links for the day
In the UK, GNU/Linux Usage Soared During Microsoft Downtime
since the massive outage GNU/Linux usage soared to over 10%
Google Slop About Richard Stallman Shows Stallman Was Right, LLMs are BS Generators
Google slop is the "new Google"
Spouse of Garrett Needs to Get "Several Firearms" to Feel Safe Amid Divorce (Garrett Has a "Girlfriend" Now)
Seems like Isis and my wife have a lot in common when it comes to Garrett
Vista 11 is Small
Can Microsoft survive the fall of Windows?
Six Richard Stallman and FSF Talks This Month (FSF Staff at Ohio State University)
Dr. Stallman's talks in Ecuador are well timed because of the collapse of the LLMs (slop) pyramid scheme
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Saturday, November 14, 2026
IRC logs for Saturday, November 14, 2026
Gemini Links 15/11/2026: "The Bastards Can Never Win" and "The Last Low-Tech Generation"
Links for the day
Links 14/11/2026: Wuhan Corruption and "Aid Isn’t Reaching Ebola’s Epicenter"
Links for the day
Rahul Kumar Has Turned tecadmin.net Into a Slopfarm That Promotes Slop and Microsoft (as Usual)
Slop promoting slop - a death knell of once-active "Linux" sites
Large-Scale Layoffs - Not Just PIPs - at Red Hat and IBM This Month
Mainstream media has quit covering mass layoffs
Links 14/11/2026: "The Claude Delusion" and "The Microsoft Outage is a Warning for the World"
Links for the day
Ethics in Perspective, Free Software and Morality
top clients of Jeffrey Epstein are one happy family
Richard Stallman (RMS) at Universidad Central del Ecuador (Guayaquil), Cuenca, Campus Sur Universidad Politecnica Salesiana (Quito), and Ohio State University
Long live the message and mission of RMS
They Paid Workers in 'Shares' (That Lost Almost Half Their Value in One Month)
Welcome back 1999 or 2007
The Register MS Made Millions of Pounds by Participating in the Slop Hype Campaign (It's Still Doing It), Now It Admits That It's Just a Bubble
the slop frenzy played a role in the Microsoft meltdown
Intercontinental Brigading - Part XXXXX - Pyramid Schemes (Planned Plunder) and Canceled/Botched Surgeries Aren't "Funny", They Cause Serious Harm and Distress
We were right about Microsoft
Links 14/11/2026: "OpenAI Is Sustaining Enormous Losses" and Slop "Loses the Popular Vote"
Links for the day
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Friday, November 13, 2026
IRC logs for Friday, November 13, 2026
Gemini Links 14/11/2026: Code of Conduct, Back to Gemini, and Gemlog to Inbox
Links for the day
Slop Promotion, Including Paid-for Slop Promotion for So-called 'Linux' Foundation (Its Clients Are Slop Companies)
We've noticed a lot of this lately in "It's FOSS" and to a lesser degree in "FOSS Force"
Gemini Links 13/11/2026: Productivity Metrics and Antenna Outage
Links for the day
The Real Issue With The Register MS is Not the Politics of Some Staff's "Tweets", It's That The Register MS Publishes Fake Articles for Sponsors (50,000 Pounds Minimum)
AWS and Google each pay millions for fake articles which beget journalistic bias too (they literally pay the salaries of the 'reporters')
Microsoft Total Cost of Ownership (TCO): We Need Accountability Because Many People Die and It's Because of Microsoft Diehards or People Bribed by Microsoft to Deploy Microsoft Where Lives Are at Risk
They're trying to save face right now
What the Media Misses: It's Not an NVIDIA Issue, Super Micro Computer Inc Also Fell From $45 to $26 in the Period NVIDIA Lost 33% of Its Faked 'Value', NVIDIA is Collapsing Like Intel
History goes in circles
It's Not About China or Sex, It's About Corruption at NVIDIA and a Pyramid Scheme Perpetrated Under the Guise of "Hey Hi Revolution" (That Wasn't, It's Manufactured and Hyped by Bribes, Subsidised by Multi-Trillion-Dollar Loans, People's Pension Funds and More)
What's at stake here is a lot bigger than the "Ponzi hub" of Jensen Huang
No, You're Not a "Most Valuable Company" When Everything is Down for Half a Day in the Entire Planet
Still down, still no explanation (maybe they too aren't sure)
Waste of Money: Giving More Money to Toothless Regulators That Don't Even Examine Evidence
Shame in SRA
"Techrights Statement on Phoronix" Still Valid Five Years Later
Our position as stated in early 2022 has not changed
Vista 11's 'Growth' Has Stalled, It's Measured at Only 17.9% in the US This Year
That helps put in perspective Microsoft's attempt to discard almost 30% of its remaining workforce
"NVIDIA is Enron" (Subsidising the Pyramid Scheme That It Profited From), Microsoft is Next to be Down for the Count
Microsoft increasingly looks like the "next NVIDIA"
Richard Stallman Travels to South America to Give Talks About Free Software in Spanish, FSF Raises Money
The FSF is raising money (goal is $400,000) and the FSF has just mentioned the upcoming talks by the FSF's founder
United States Adding ~300 Billion in Government Debt Per Month, Wall Street Shaves Off Trillions in 'Value' in Less Than One Week
cushioning "assets" by helping them fake "value"
Microsoft: Pay Us for the Stuff That's Offline and We Cannot Fix
Learn to take control of the technology that you rely on
Links 13/11/2026: "Copyright-Strike-for-Hire" and "Stevie Wonder Photo Lawsuit"
Links for the day
The Slop Bubble (or Pyramid Scheme) Relied on Trust and Patience (Being Patient as Losses Grow and Debt Explodes, Trusting the Roadmap of Cheaters and Frauds)
Remember that it all began with trust
Anthropic's IPO Depends on $895.4 Billion in Debt (Money It Doesn't Have, It Loses Over 100 Billion Dollars Per Reporting Period), NVIDIA Has Just Lost Almost 2 Trillion Dollars In Value and Its Debt Trebled in Three Months
This coming week will be very, very entertaining for slop critics/sceptics to watch
At Microsoft, "Buyouts" or "Global Voluntary Separation Agreement" (GVSA) Not Much Different From Layoffs (Severance Shockingly Low)
From what we are able to gather, many people are leaving Microsoft 'voluntarily'
Is Microsoft the Next Fake-Valued Corporation to Lose 35% in "Market Value"? Is Slop Bringing Microsoft Down?
Will NDAs prevent people talking or journalists finding out the true cause?
Lorenzo Stoakes (ARM) the Latest of Many to Quit Linux Development Over Linus Torvalds' Obsession With Slop (Linus Wants to Work With Bots, Not Humans Who Understand Whatever Code They Write)
Linus caught the 'brain virus'
Silent Layoffs at IBM (and Red Hat) Continue in November 2026
IBM's CEO is "a Palliative Care Doctor Who Slides [IBM] Gently Into the Night"
Microsoft Asks 60,000 Workers to Leave, Some Leave, Services Go Down
Microsoft laid off about 40,000-50,000 people in past years
Gemini Links 13/11/2026: Roku Exits the Smart Home Market and Poor Reporting/Journalism Regarding Slop Plagiarism
Links for the day
Links 13/11/2026: "Apple Support Community Forums to Permanently Close" and "The Slop Market is Getting Nervous"
Links for the day
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Thursday, November 12, 2026
IRC logs for Thursday, November 12, 2026