Skip to content

Create LISP Guide to Raku#4814

Draft
comborico1611 wants to merge 2 commits into
Raku:mainfrom
comborico1611:patch-1
Draft

Create LISP Guide to Raku#4814
comborico1611 wants to merge 2 commits into
Raku:mainfrom
comborico1611:patch-1

Conversation

@comborico1611

Copy link
Copy Markdown
Contributor

Not finished, but making sure this is what y'all want.

The problem

Solution provided

Not finished, but making sure this is what y'all want.
@comborico1611 comborico1611 marked this pull request as draft June 16, 2026 19:44
@comborico1611 comborico1611 marked this pull request as ready for review June 16, 2026 19:44
@lizmat

lizmat commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator

Thank you for your work so far!

I've only dabbled a tiny bit in LISP almost 50 years ago, so I'm going to leave it to other people to see if this makes sense to add to the doc repo!

@lizmat lizmat marked this pull request as draft June 16, 2026 19:51

@coke coke left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've done only a partial review - looks great so far, I put in a bunch of formatting notes. I'll do a second round with more content-related notes later. (Under some time restrictions at the moment.)

Good work!


Regardless of your choice of syntax, the noteworthy feature is Raku's
take on all this. Which is, as best as possible, avoid restricting users
of their personal methodology. TMTOWTDI, y'all --> there's more than one

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A link to the acronym in the glossary would be good, especially for LISP folks.

maybe after some time, you'll end up preferring. One of those things is
the ubiquitous sigil -- that @ symbol you saw.

Sigils go before the name of a variable. Raku requires the use of the

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is possible to have sigil-less variables in Raku, with the cost of a little syntax:

https://docs.raku.org/language/variables#index-entry-%5C_(sigilless_variables)

accomodate your thinking/programming style more than any other langauge
out there.

Now because LISP users have the first and best REPL in the world, and are

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

link to the REPL glossary

accustomed to working within it, the code here will be syntaxed as if
working from Raku's REPL, unless otherwise noted.

=header2 Lists

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

=head2

problem, and the flexibility to have options is best.

=header2 Basics of Raku

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

head2


Raku is operator rich, not just compared to Common LISP, but compared to
all other programming languages out there. By operators I mean any
in-house functions -- functions that are baked into the

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can use a literal mdash here, or an escaped one. Either preferable to the double dash.

We must quote each symbol or else the system will go look for what the
symbol evaluates to, just like in LISP.

The < > operator automatically quotes each symbol separated by space for

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can quote the < > here so that it's rendered as code with C«< >»

1) There is likely going to be a less optimal way.
2) The programmer will eventually face learning those multiple, less
optimal ways.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will render as a single paragraph. You can use =item

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understood everything else. But I couldn't find information on =item with search term "markdown basics =item".

Is it as simple as =item 1) foo bar baz
=item 2) foo bar baz
?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's rakudoc, not markdown: https://docs.raku.org/language/pod#Lists

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh... Wow. Aiming high with this enterprise, I see. Is RakuOS in the works? Haha. Excited to see what y'all have come up with in this markup language.

empty braces {}, and empty quotes "". And then there is 0.

I know there are several things that are false, but we have one more,
which is that types (like List, Str, Int, etc) are interpreted as false.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You don't have to do this here, but we'll update all the types in the document to link to their Raku doc page.


Raku

if 1 > 0 and 1 + 2 == 3 { "block executes" } # OUTPUT: block executes

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general, you can make these look like code blocks by indenting them. you can also wrap them in

=begin code
=end code

If you use this syntax, there's an optional arg you use to specify the language - defaults to Raku.

=begin code :lang<lisp>
=end code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants