Raku

1 program Added 2025-10-22T09:41:09Z Model: anthropic/claude-3.5-sonnetTemp: 0.4 Evidence Report issue View issues
Aliases: Perl 6, Rakudo
Provenance: commit fe023e83ce · authored 2025-10-22T11:41:09+02:00 · model anthropic/claude-3.5-sonnet

Sources mentioning this language

8 sources · pl_id: pl/raku
LLM (this repo) · 1PldbLinguistPygmentsWikipediaHyperpolyglotRosettacodeWikidata · Q2052676

Wikipedia infobox

Pulled from the wikimedia/structured-wikipedia snapshot — see data/raw/wikipedia_pl_facts.*.jsonl and pl_fact.csv for the long-table provenance.

Paradigmsmulti-paradigm
Typingdynamic, gradual
Designed byRaku community · Larry Wall
First appeared2015
Influenced byPerl · Ruby · Smalltalk · Haskell · JavaScript
LicenseGNU General Public or Artistic 2
Homepagehttps://raku.org/

Extensions claimed by this language

34 claims. Each row is one upstream assertion with its strength. SWH column shows file occurrences with that extension across the entire archive.
ExtensionSourceStrengthSWH
.6pllinguistprimary12 files
.plpygmentsprimary5.4M files
.rakuwikidataprimary17.1K files
.rakudocwikidataprimary1.1K files
.rakumodwikidataprimary30.3K files
.rakutestwikidataprimary6.7K files
.twikidataprimary2.7M files
.6plpygmentssecondary12 files
.6pmlinguistsecondary5 files
.6pmpygmentssecondary5 files
.nqplinguistsecondary22.5K files
.nqppygmentssecondary22.5K files
.p6linguistsecondary26.9K files
.p6pygmentssecondary26.9K files
.p6llinguistsecondary2 files
.p6lpygmentssecondary2 files
.p6mlinguistsecondary5 files
.p6mpygmentssecondary5 files
.pllinguistsecondary5.4M files
.pl6linguistsecondary10.5K files
.pl6pygmentssecondary10.5K files
.pmlinguistsecondary10.0M files
.pmpygmentssecondary10.0M files
.pm6linguistsecondary132.1K files
.pm6pygmentssecondary132.1K files
.rakulinguistsecondary17.1K files
.rakupygmentssecondary17.1K files
.rakudocpygmentssecondary1.1K files
.rakumodlinguistsecondary30.3K files
.rakumodpygmentssecondary30.3K files
.rakutestpygmentssecondary6.7K files
.tlinguistsecondary2.7M files
.tpygmentssecondary2.7M files
.nqpwikipediaproposed22.5K files

Related languages

Perl 6 (0.58)Perl6 (0.50)Perl (0.18)XS (0.15)ePerl (0.13)

LLM-contributed programs

Wordle Solver

Provenance: commit fe023e83ce · authored 2025-10-22T11:41:09+02:00 · model anthropic/claude-3.5-sonnet · Temp 0.4
code.raku · license: Artistic-2.0 · added: 2025-10-22T09:41:09Z
#!/usr/bin/env raku
unit sub MAIN ($word? is copy);
my @words = 'share/dict'.IO.lines.grep(/^<[a..z]>**5$/); 
my @possible = @words;
my $try = 1;
while @possible > 1 {
    my $guess = $try == 1 ?? 'stare' !! smart-guess(@possible);
    my $result;
    with $word {
        $result = compare($word, $guess);
        say "$guess -> $result";
    }
    else {
        say "Try $try: $guess";
        $result = prompt 'Result: ';
        last if $result eq 'done';
    }
    @possible = filter-words(@possible, $guess, $result);
    $try++;
}
say @possible[0] if @possible == 1;
sub smart-guess(@words) {
    @words.sort(*.comb.unique.elems).[*-1]
}
sub compare($word, $guess) {
    my @result;
    my @word = $word.comb;
    my @guess = $guess.comb;
    for ^5 -> $i {
        if @word[$i] eq @guess[$i] {
            @result[$i] = '+';
            @word[$i] = @guess[$i] = Nil;
        }
    }
    for ^5 -> $i {
        next unless @guess[$i];
        if (my $j = @word.first(@guess[$i], :k)) {
            @result[$i] = '?';
            @word[$j] = Nil;
        }
        else {
            @result[$i] = '-';
        }
    }
    @result.join
}
sub filter-words(@words, $guess, $result) {
    my @guess = $guess.comb;
    my @result = $result.comb;
    my %must-have;
    my %must-not-have;
    my %exact;
    for ^5 -> $i {
        given @result[$i] {
            when '+' {
                %exact{$i} = @guess[$i];
                %must-have{@guess[$i]}++;
            }
            when '?' {
                %must-have{@guess[$i]}++;
                %must-not-have{$i}{@guess[$i]} = 1;
            }
            when '-' {
                %must-not-have<all>{@guess[$i]} = 1;
            }
        }
    }
    return @words.grep: -> $word {
        my @word = $word.comb;
        next False if %exact.first: -> $p {
            @word[$p.key] ne $p.value;
        };
        next False if %must-not-have.first: -> $p {
            $p.key eq 'all'
                ?? $word.contains($p.value.any)
                !! @word[$p.key] eq $p.value.any;
        };
        next False if %must-have.first: -> $p {
            $word.comb.grep($p.key) != $p.value;
        };
        True;
    };
}

Real programs from Software Heritage

No SWH evidence indexed yet for this language. (Either the SWH mining hasn't reached this language's extensions, or no matching files exist in the archive.)

Disambiguation rules

Linguist heuristic rules that predict this language when one of its claimed extensions is shared with another.
RuleExtKindPredicates (truncated)
h/linguist/.pl/2.plpredicates[{"kind": "any", "regexes": ["^\\s*(?:use\\s+v6\\b|\\bmodule\\b|\\b(?:my\\s+)?class\\b)"]}]
h/linguist/.pm/1.pmpredicates[{"kind": "any", "regexes": ["^\\s*(?:use\\s+v6\\b|\\bmodule\\b|\\b(?:my\\s+)?class\\b)"]}]
h/linguist/.t/1.tpredicates[{"kind": "any", "regexes": ["^\\s*(?:use\\s+v6\\b|\\bmodule\\b|\\bmy\\s+class\\b)"]}]

Contribute — propose a file extension

Tell us where to find evidence about Raku (mapped to pl/raku). A reference URL is required; at least one of extension or program code must be provided too. A maintainer reviews each submission via a draft PR before anything lands.
Optional: attach a program from that URL
If the reference URL points at a single source file you'd like to add as an example program, paste it below. The workflow will write it under languages/Raku/programs/<sha>/. Keep under ~200 lines.
(or open the pre-filled issue directly)
← RAISE Raku (programming language) →