I'm not super familiar with Raku, but if RakuAST is what you had in mind it looks a bit different:
use experimental :rakuast;
my $ast = RakuAST::Call::Name.new(
name => RakuAST::Name.from-identifier("say"),
args => RakuAST::ArgList.new(
RakuAST::StrLiteral.new("Hello world")
)
);
Looks more like "low-level programming an AST" (which I believe other languages offer as well), rather than using a bidirectional transform. I don't know how you'd get Raku code back out, for example.
Edit: I should have looked deeper, `DEPARSE` does exactly this:
And therein lies the tragedy of folks exploiting well known culturally loaded symbols/concepts for attention/etc. on the Internet.
For example, I really don't know what to make of this similarly named language; enthusiastic kid or attention-seeking influencer? - https://omlang.com/
I think it's going to take some time for the reality of ns;nt and the disappointments to sink in. They need to learn that one cannot "claw" their way to a money machine.
1. Thamarai Thandu Poriyal / Varuval (Stir-fried Lotus Stem): A popular dish where the lotus stem is peeled, sliced into coins, and stir-fried with coconut oil, mustard seeds, shallots, green chilies, curry leaves, and sometimes sambar powder or chili flakes.
2. Thamarai Thandu Uppukari (Lotus Stem Dry Curry): A preparation where the lotus stem is boiled with salt, then deep-fried or stir-fried until light golden brown to create a crispy side dish, often served with rasam rice.
3. Thamarai Kizhangu Vathal (Dried Lotus Root Crisps): A traditional, shelf-stable snack where the lotus stem is sliced, salted, and dried, then fried before consumption.
4. Lotus Petal Paruppu Usili (Steamed Lentil Crumble): A dish made by finely chopping tender inner lotus petals and mixing them with coarsely ground, steamed, and crumbled lentils (dal), similar to traditional Tamil Paruppu Usili.
5. Thamara Vadai (Lotus Stem Fritters): A traditional snack in South India that uses sliced lotus stem in a seasoned batter, similar to a vadai.
CLI applications typically read text from stdin and write text to stdout. The tcl model of "everything is a string" makes exactly the right abstraction to create GUI frontends for CLI applications rapidly and keep them simple at the same time.
Tk's GUI object model is sitting at a reasonable maxima between trivial to make use of vs. triggering the events necessary to make the GUI active.
Small example. You want a button on your GUI that triggers a procedure called "process" when it is clicked, this is the code you need (if you are fine with the remaining defaults) (and assuming you used 'pack' as the geometry manager):
button .process -text "Process Entries" -command process
pack .process -side top
And a fully active GUI button will now appear at the bottom of your Tk window, with a label of "Process Entries" and when you click it, a Tcl procedure named "process" will be executed.