Cursus Raku / Expressiones regulares et grammaticae / Grammaticae / Arbor analysis, make et made / Exercises / Ordinem verborum inverte

Solutio: Ordinem verborum inverte

Ecce solutio possibilis huius exercitationis.

Codex

grammar Phrase {
    token TOP  { <word> [ ' ' <word> ]* { make $<word>».made.join(' ') } }
    token word { \w+ { make $/.flip } }
}

say Phrase.parse('hello world').made;

🦋 Inveni codicem fontem in archivo reverse-the-words.raku.

Exitus

olleh dlrow

Commentarii

  1. Unaquaeque tessera word proprium textum inversum facit: clausula eius inserta currit quotiens verbum congruit, et make $/.flip verbum servat — $/ est congruentia currens — retro scriptum.

  2. TOP verba per <word> [ ' ' <word> ]* congruit — unum verbum, deinde quotlibet «spatium deinde verbum» — et ea coniungit. $<word> est series omnium congruentiarum verborum; ».made textum inversum quem unaquaeque servavit extrahit, et .join(' ') locutionem cum spatiis reaedificat.

  3. Illa forma «res, deinde res, deinde res…» satis frequens est ut compendium habeat: separatorem %. <word>+ % ' ' scribere significat «unum vel plura <word>, spatio separata», et easdem locutiones exacte congruit quas <word> [ ' ' <word> ]* — solum compendiosius.

  4. Itaque make et made duobus gradibus hic operantur: partes parvae valores suos faciunt, et totum ex eis fit. .made in effectu legens olleh dlrow accipis.

Ordinem verborum inverte   |   Classes actionum