Kurso de Raku / Progresinta / Pli pri la enkonstruitaj tipoj / Citaj konstruoj / Exercises / Fermilo en q-ĉeno

Solvo: Fermilo en q-ĉeno

Jen ebla solvo de la tasko.

Kodo

my $x = 10;
say q:c/$x squared is {$x ** 2}/;

🦋 Vi povas trovi la fontkodon en la dosiero closure-quote.raku.

Eligo

$x squared is 100

Komentoj

  1. La adverbo :c (fermo) ŝaltas interpoladon de enkonstruita { … }-kodo en la alie-laŭlitera q-formo. Ene de la krampoj, $x estas vera kodo, do {$x ** 2} taksas al 100.

  2. La $x ekster la krampoj restas ĝuste kiel skribita, ĉar la skalara adverbo :s ne estas ŝaltita. Tio estas la tuta senco de la per-funkciaj adverboj: vi ricevas enkonstruitan kodon sen ankaŭ ŝalti $-interpoladon.

  3. Adverboj povas esti stakitaj. Aldonu ankaŭ :s, kaj la komenca $x estas interpolata ankaŭ — ambaŭ funkcioj nun estas ŝaltitaj samtempe:

my $x = 10;
say q:c:s/$x squared is {$x ** 2}/; # 10 squared is 100

Kursa navigado

Fermilo en q-ĉeno   |   Heredoko