From 6dedddc545e2f1930bdc2256784eb1551bd4231d Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 1 Feb 2026 00:49:15 +0900 Subject: feat(nuldoc): rewrite nuldoc in Ruby --- .../2022-04-09/phperkaigi-2022-tokens/index.html | 417 +++++++++++---------- 1 file changed, 216 insertions(+), 201 deletions(-) (limited to 'services/nuldoc/public/blog/posts/2022-04-09/phperkaigi-2022-tokens/index.html') diff --git a/services/nuldoc/public/blog/posts/2022-04-09/phperkaigi-2022-tokens/index.html b/services/nuldoc/public/blog/posts/2022-04-09/phperkaigi-2022-tokens/index.html index b3637d00..c5404c5e 100644 --- a/services/nuldoc/public/blog/posts/2022-04-09/phperkaigi-2022-tokens/index.html +++ b/services/nuldoc/public/blog/posts/2022-04-09/phperkaigi-2022-tokens/index.html @@ -166,75 +166,76 @@
brainf_ck.php
-
<?php
-
-declare(strict_types=0O1);
-
-namespace Dgcircus\PHPerKaigi\Y2022;
-
-/**
- * @todo
- * Run this program to acquire a PHPer token.
- */
-
-https://creativecommons.org/publicdomain/zero/1.0/
-
-\error_reporting(~+!'We are hiring!');
-
-$z = fn($f) => (fn($x) => $f(fn(...$xs) => $x($x)(...$xs)))(fn($x) => $f(fn(...$xs) => $x($x)(...$xs)));
-$id = \spl_object_id(...);
-$put = fn($c) => \printf('%c', $c);
-$mm = fn($p, $n) => new \ArrayObject(\array_fill(+!![], $n, $p));
-
-$๐Ÿ‘‰ = fn($m, $p, $b, $e, $mp, $pc) => [++$mp, ++$pc];
-$๐Ÿ‘ˆ = fn($m, $p, $b, $e, $mp, $pc) => [--$mp, ++$pc];
-$๐Ÿ‘ = fn($m, $p, $b, $e, $mp, $pc) => [$mp, ++$pc, ++$m[$mp]];
-$๐Ÿ‘Ž = fn($m, $p, $b, $e, $mp, $pc) => [$mp, ++$pc, --$m[$mp]];
-$๐Ÿ“ = fn($m, $p, $b, $e, $mp, $pc) => [$mp, ++$pc, $put($m[$mp])];
-$๐Ÿคก = fn($m, $p, $b, $e, $mp, $pc) => match ($m[$mp]) {
-  +!![] => [$mp, $z(fn($loop) => fn($pc, $n) => match ($id($p[$pc])) {
-    $b => $loop(++$pc, ++$n),
-    $e => $n === +!![] ? ++$pc : $loop(++$pc, --$n),
-    default => $loop(++$pc, $n),
-  })($pc, -![])],
-  default => [$mp, ++$pc],
-};
-$๐ŸŽช = fn($m, $p, $b, $e, $mp, $pc) => match ($m[$mp]) {
-  +!![] => [$mp, ++$pc],
-  default => [$mp, $z(fn($loop) => fn($pc, $n) => match ($id($p[$pc])) {
-    $e => $loop(--$pc, ++$n),
-    $b => $n === +!![] ? $pc+![] : $loop(--$pc, --$n),
-    default => $loop(--$pc, $n),
-  })($pc, -![])],
-};
-$๐Ÿ˜ = fn($p) => $z(fn($loop) => fn($m, $p, $b, $e, $mp, $pc) =>
-  isset($p[$pc]) && $loop($m, $p, $b, $e, ...($p[$pc]($m, $p, $b, $e, $mp, $pc)))
-)($mm(+!![], +(![].![])), $p, $id($๐Ÿคก), $id($๐ŸŽช), +!![], +!![]);
-
-$๐Ÿ˜([
-  $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘,
-  $๐Ÿคก,
-  $๐Ÿ‘‰, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘,
-  $๐Ÿ‘‰, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘,
-  $๐Ÿ‘‰, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘,
-  $๐Ÿ‘‰, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘,
-  $๐Ÿ‘ˆ, $๐Ÿ‘ˆ, $๐Ÿ‘ˆ, $๐Ÿ‘ˆ, $๐Ÿ‘Ž,
-  $๐ŸŽช,
-  $๐Ÿ‘‰, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ“,
-  $๐Ÿ‘Ž, $๐Ÿ‘Ž, $๐Ÿ“,
-  $๐Ÿ‘‰, $๐Ÿ‘Ž, $๐Ÿ‘Ž, $๐Ÿ‘Ž, $๐Ÿ“,
-  $๐Ÿ‘‰, $๐Ÿ‘Ž, $๐Ÿ‘Ž, $๐Ÿ‘Ž, $๐Ÿ“,
-  $๐Ÿ‘Ž, $๐Ÿ‘Ž, $๐Ÿ“,
-  $๐Ÿ‘Ž, $๐Ÿ“,
-  $๐Ÿ‘ˆ, $๐Ÿ“,
-  $๐Ÿ‘‰, $๐Ÿ‘‰, $๐Ÿ‘Ž, $๐Ÿ‘Ž, $๐Ÿ“,
-  $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ“,
-  $๐Ÿ‘ˆ, $๐Ÿ‘Ž, $๐Ÿ‘Ž, $๐Ÿ‘Ž, $๐Ÿ‘Ž, $๐Ÿ“,
-  $๐Ÿ‘ˆ, $๐Ÿ“,
-  $๐Ÿ‘‰, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ“,
-  $๐Ÿ‘‰, $๐Ÿ‘Ž, $๐Ÿ“,
-  $๐Ÿ‘ˆ, $๐Ÿ“,
-]);
+
<?php
+
+declare(strict_types=0O1);
+
+namespace Dgcircus\PHPerKaigi\Y2022;
+
+/**
+ * @todo
+ * Run this program to acquire a PHPer token.
+ */
+
+https://creativecommons.org/publicdomain/zero/1.0/
+
+\error_reporting(~+!'We are hiring!');
+
+$z = fn($f) => (fn($x) => $f(fn(...$xs) => $x($x)(...$xs)))(fn($x) => $f(fn(...$xs) => $x($x)(...$xs)));
+$id = \spl_object_id(...);
+$put = fn($c) => \printf('%c', $c);
+$mm = fn($p, $n) => new \ArrayObject(\array_fill(+!![], $n, $p));
+
+$๐Ÿ‘‰ = fn($m, $p, $b, $e, $mp, $pc) => [++$mp, ++$pc];
+$๐Ÿ‘ˆ = fn($m, $p, $b, $e, $mp, $pc) => [--$mp, ++$pc];
+$๐Ÿ‘ = fn($m, $p, $b, $e, $mp, $pc) => [$mp, ++$pc, ++$m[$mp]];
+$๐Ÿ‘Ž = fn($m, $p, $b, $e, $mp, $pc) => [$mp, ++$pc, --$m[$mp]];
+$๐Ÿ“ = fn($m, $p, $b, $e, $mp, $pc) => [$mp, ++$pc, $put($m[$mp])];
+$๐Ÿคก = fn($m, $p, $b, $e, $mp, $pc) => match ($m[$mp]) {
+  +!![] => [$mp, $z(fn($loop) => fn($pc, $n) => match ($id($p[$pc])) {
+    $b => $loop(++$pc, ++$n),
+    $e => $n === +!![] ? ++$pc : $loop(++$pc, --$n),
+    default => $loop(++$pc, $n),
+  })($pc, -![])],
+  default => [$mp, ++$pc],
+};
+$๐ŸŽช = fn($m, $p, $b, $e, $mp, $pc) => match ($m[$mp]) {
+  +!![] => [$mp, ++$pc],
+  default => [$mp, $z(fn($loop) => fn($pc, $n) => match ($id($p[$pc])) {
+    $e => $loop(--$pc, ++$n),
+    $b => $n === +!![] ? $pc+![] : $loop(--$pc, --$n),
+    default => $loop(--$pc, $n),
+  })($pc, -![])],
+};
+$๐Ÿ˜ = fn($p) => $z(fn($loop) => fn($m, $p, $b, $e, $mp, $pc) =>
+  isset($p[$pc]) && $loop($m, $p, $b, $e, ...($p[$pc]($m, $p, $b, $e, $mp, $pc)))
+)($mm(+!![], +(![].![])), $p, $id($๐Ÿคก), $id($๐ŸŽช), +!![], +!![]);
+
+$๐Ÿ˜([
+  $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘,
+  $๐Ÿคก,
+  $๐Ÿ‘‰, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘,
+  $๐Ÿ‘‰, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘,
+  $๐Ÿ‘‰, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘,
+  $๐Ÿ‘‰, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘,
+  $๐Ÿ‘ˆ, $๐Ÿ‘ˆ, $๐Ÿ‘ˆ, $๐Ÿ‘ˆ, $๐Ÿ‘Ž,
+  $๐ŸŽช,
+  $๐Ÿ‘‰, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ“,
+  $๐Ÿ‘Ž, $๐Ÿ‘Ž, $๐Ÿ“,
+  $๐Ÿ‘‰, $๐Ÿ‘Ž, $๐Ÿ‘Ž, $๐Ÿ‘Ž, $๐Ÿ“,
+  $๐Ÿ‘‰, $๐Ÿ‘Ž, $๐Ÿ‘Ž, $๐Ÿ‘Ž, $๐Ÿ“,
+  $๐Ÿ‘Ž, $๐Ÿ‘Ž, $๐Ÿ“,
+  $๐Ÿ‘Ž, $๐Ÿ“,
+  $๐Ÿ‘ˆ, $๐Ÿ“,
+  $๐Ÿ‘‰, $๐Ÿ‘‰, $๐Ÿ‘Ž, $๐Ÿ‘Ž, $๐Ÿ“,
+  $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ“,
+  $๐Ÿ‘ˆ, $๐Ÿ‘Ž, $๐Ÿ‘Ž, $๐Ÿ‘Ž, $๐Ÿ‘Ž, $๐Ÿ“,
+  $๐Ÿ‘ˆ, $๐Ÿ“,
+  $๐Ÿ‘‰, $๐Ÿ‘, $๐Ÿ‘, $๐Ÿ“,
+  $๐Ÿ‘‰, $๐Ÿ‘Ž, $๐Ÿ“,
+  $๐Ÿ‘ˆ, $๐Ÿ“,
+]);
+

ใ“ใฎๅ•้กŒใฏใ€ๅ˜ใซ้ฉๅˆ‡ใชใƒใƒผใ‚ธใƒงใƒณใฎ PHP ใงๅ‹•ใ‹ใ›ใฐใƒˆใƒผใ‚ฏใƒณใŒๅพ—ใ‚‰ใ‚Œใ‚‹ใ€‚ @@ -259,28 +260,29 @@ ใชใŠใ€brainf*ck ใƒ—ใƒญใ‚ฐใƒฉใƒ ใ‚’ๆ™ฎ้€šใฎๆ›ธใๆ–นใงๆ›ธใใจใ€ๆฌกใฎใ‚ˆใ†ใซใชใ‚‹ใ€‚

-
+ + + + + + + + + +
-[
-  > + + +
-  > + + + + +
-  > + + + + + + + + + + + +
-  > + + + + + + + + + +
-  < < < < -
-]
-> + + + + + .
-- - .
-> - - - .
-> - - - .
-- - .
-- .
-< .
-> > - - .
-+ + + + + + + .
-< - - - - .
-< .
-> + + .
-> - .
-< .
+
+ + + + + + + + + +
+[
+  > + + +
+  > + + + + +
+  > + + + + + + + + + + + +
+  > + + + + + + + + + +
+  < < < < -
+]
+> + + + + + .
+- - .
+> - - - .
+> - - - .
+- - .
+- .
+< .
+> > - - .
++ + + + + + + .
+< - - - - .
+< .
+> + + .
+> - .
+< .
+

ๅฎŸ่กŒ็ตๆžœใฏใ“ใกใ‚‰: https://ideone.com/22VWmb @@ -336,7 +338,8 @@ ใ‚ฝใƒผใ‚นใ‚ณใƒผใƒ‰ใฎใƒฉใ‚คใ‚ปใƒณใ‚นใ‚’็คบใ—ใŸใ“ใฎ้ƒจๅˆ†ใ ใŒใ€

-
https://creativecommons.org/publicdomain/zero/1.0/
+
https://creativecommons.org/publicdomain/zero/1.0/
+

ๅฎŒๅ…จใซๅˆๆณ•ใช PHP ใฎใ‚ณใƒผใƒ‰ใงใ‚ใ‚‹ใ€‚ https: ้ƒจๅˆ†ใฏใƒฉใƒ™ใƒซใ€// ไปฅ้™ใฏ่กŒใ‚ณใƒกใƒณใƒˆใซใชใฃใฆใ„ใ‚‹ใ€‚ @@ -348,11 +351,12 @@ ใ‚ฝใƒผใ‚นใ‚ณใƒผใƒ‰ไธญใซใ€ใปใจใ‚“ใฉๆ•ฐๅ€คใƒชใƒ†ใƒฉใƒซใŒๆ›ธใ‹ใ‚Œใฆใ„ใชใ„ใ“ใจใซใŠๆฐ—ใฅใใ ใ‚ใ†ใ‹ใ€‚PHP ใงใฏใ€ๅž‹ๅค‰ๆ›ใ‚’ๅˆฉ็”จใ™ใ‚‹ใ“ใจใงไปปๆ„ใฎๆ•ดๆ•ฐใ‚’ไฝœใ‚Šๅ‡บใ™ใ“ใจใŒใงใใ‚‹ใ€‚

-
assert(0 === +!![]);
-assert(1 === +![]);
-assert(2 === ![]+![]);
-assert(3 === ![]+![]+![]);
-assert(10 === +(![].+!![]));
+
assert(0 === +!![]);
+assert(1 === +![]);
+assert(2 === ![]+![]);
+assert(3 === ![]+![]+![]);
+assert(10 === +(![].+!![]));
+

[] ใซ ! ใ‚’้ฉ็”จใ™ใ‚‹ใจ true ใŒ่ฟ”ใฃใฆใใ‚‹ใ€‚ใใ‚Œใซ + ใ‚’้ฉ็”จใ™ใ‚‹ใจใ€bool ใ‹ใ‚‰ int ใƒ˜ใฎๅž‹ๅค‰ๆ›ใŒ่ตฐใ‚Šใ€1 ใŒ็”Ÿๆˆใ•ใ‚Œใ‚‹ใ€‚10 ใฏใ•ใ‚‰ใซใƒˆใƒชใƒƒใ‚ญใƒผใ ใ€‚ใพใš 1 ใจ 0 ใ‚’ไฝœใ‚Šใ€. ใงๆ–‡ๅญ—ๅˆ—ใจใ—ใฆ็ตๅˆใ™ใ‚‹ ('10')ใ€‚ใ“ใ‚Œใซ + ใ‚’้ฉ็”จใ™ใ‚‹ใจใ€string ใ‹ใ‚‰ int ใธใฎๅž‹ๅค‰ๆ›ใŒ่ตฐใ‚Šใ€10 ใŒ็”Ÿใพใ‚Œใ‚‹ (ใ‚ณใƒผใƒ‰้‡ใซ้ “็€ใ—ใชใ„ใชใ‚‰ใ€1 ใ‚’ 10 ๅ€‹่ถณใ—ๅˆใ‚ใ›ใฆใ‚‚ใ‚‚ใกใ‚ใ‚“ 10 ใŒไฝœใ‚Œใ‚‹)ใ€‚ @@ -390,40 +394,41 @@

riddle.php
-
<?php
-
-/*********************************************************
- * This program displays a PHPer token.                  *
- * Guess 'N'.                                            *
- *                                                       *
- * Hints:                                                *
- * - N itself has no special meaning, e.g., 42, 8128,    *
- *   it is selected at random.                           *
- * - Each element of $token represents a single letter.  *
- * - One letter consists of 5x5 cells.                   *
- * - Remember, the output is a complete PHPer token.     *
- *                                                       *
- * License:                                              *
- *   https://creativecommons.org/publicdomain/zero/1.0/  *
- *********************************************************/
-const N = 0 /* Change it to your answer. */;
-assert(0 <= N && N <= 0b11111_11111_11111_11111_11111);
-
-$token = [
-  0x14B499C,
-  0x0BE34CC, 0x01C9C69,
-  0x0ECA069, 0x01C2449, 0x0FDB166, 0x01C9C69,
-  0x01C1C66, 0x0FC1C47, 0x01C1C66,
-  0x10C5858, 0x1E4E3B8, 0x1A2F2F8,
-];
-foreach ($token as $x) {
-  $x = $x ^ N;
-
-  $x = sprintf('%025b', $x);
-  $x = str_replace(search: ['0', '1'], replace: [' ', '#'], subject: $x);
-  $x = implode("\n", str_split($x, length: 5));
-  echo "{$x}\n\n";
-}
+
<?php
+
+/*********************************************************
+ * This program displays a PHPer token.                  *
+ * Guess 'N'.                                            *
+ *                                                       *
+ * Hints:                                                *
+ * - N itself has no special meaning, e.g., 42, 8128,    *
+ *   it is selected at random.                           *
+ * - Each element of $token represents a single letter.  *
+ * - One letter consists of 5x5 cells.                   *
+ * - Remember, the output is a complete PHPer token.     *
+ *                                                       *
+ * License:                                              *
+ *   https://creativecommons.org/publicdomain/zero/1.0/  *
+ *********************************************************/
+const N = 0 /* Change it to your answer. */;
+assert(0 <= N && N <= 0b11111_11111_11111_11111_11111);
+
+$token = [
+  0x14B499C,
+  0x0BE34CC, 0x01C9C69,
+  0x0ECA069, 0x01C2449, 0x0FDB166, 0x01C9C69,
+  0x01C1C66, 0x0FC1C47, 0x01C1C66,
+  0x10C5858, 0x1E4E3B8, 0x1A2F2F8,
+];
+foreach ($token as $x) {
+  $x = $x ^ N;
+
+  $x = sprintf('%025b', $x);
+  $x = str_replace(search: ['0', '1'], replace: [' ', '#'], subject: $x);
+  $x = implode("\n", str_split($x, length: 5));
+  echo "{$x}\n\n";
+}
+

ใ•ใฆใ€ใ“ใฎๅ•้กŒใฏใ•ใใปใฉใฎใ‚ˆใ†ใซๅ˜็ด”ใซๅฎŸ่กŒใ—ใŸใ ใ‘ใงใฏใ€่ฌŽใฎใƒ–ใƒญใƒƒใ‚ฏใŒ่กจ็คบใ•ใ‚Œใ‚‹ใ ใ‘ใงใƒˆใƒผใ‚ฏใƒณใฏๅพ—ใ‚‰ใ‚Œใชใ„ใ€‚ใƒˆใƒผใ‚ฏใƒณใ‚’ๅพ—ใ‚‹ใŸใ‚ใซใฏใ€ใ‚ฝใƒผใ‚นใ‚ณใƒผใƒ‰ใ‚’่ชญใฟใ€ๅฎšๆ•ฐ N ใ‚’็‰นๅฎšใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚‹ใ€‚ @@ -437,33 +442,38 @@ ใพใšใฏใ‚ฝใƒผใ‚นใ‚ณใƒผใƒ‰ใ‚’่ชญใ‚“ใงใ„ใใ€‚

-
$token = [
-  // ็•ฅ
-];
+
$token = [
+  // ็•ฅ
+];
+

ๆ•ฐๅ€คใ‹ใ‚‰ใชใ‚‹ $token ใŒใ‚ใ‚Šใ€ๅ„่ฆ็ด ใ‚’ใƒซใƒผใƒ—ใ—ใฆใ„ใ‚‹ใ€‚

-
$x = $x ^ N;
+
$x = $x ^ N;
+

ใพใšใฏๆŽ’ไป–็š„่ซ–็†ๅ’Œ (xor) ใ‚’ๅ–ใ‚Šใ€

-
$x = sprintf('%025b', $x);
+
$x = sprintf('%025b', $x);
+

ไบŒ้€ฒๆ•ฐใซๅค‰ๆ›ใ—ใฆใ€

-
$x = str_replace(search: ['0', '1'], replace: [' ', '#'], subject: $x);
+
$x = str_replace(search: ['0', '1'], replace: [' ', '#'], subject: $x);
+

0 ใ‚’็ฉบ็™ฝใซใ€1 ใ‚’ # ใซใ—ใ€

-
$x = implode("\n", str_split($x, length: 5));
+
$x = implode("\n", str_split($x, length: 5));
+

5ๆ–‡ๅญ—ใ”ใจใซๅŒบๅˆ‡ใฃใŸใ‚ใจใ€ๆ”น่กŒใง็ตๅˆใ—ใฆใ„ใ‚‹ใ€‚ @@ -501,49 +511,52 @@ N ใฏ้ซ˜ใ€…

-
assert(0 <= N && N <= 0b11111_11111_11111_11111_11111);
+
assert(0 <= N && N <= 0b11111_11111_11111_11111_11111);
+

ใชใฎใงใƒ–ใƒซใƒผใƒˆใƒ•ใ‚ฉใƒผใ‚นใ—ใฆใ‚‚ใ‚ˆใ„ใŒใ€ใ“ใ“ใงใฏใƒ–ใƒซใƒผใƒˆใƒ•ใ‚ฉใƒผใ‚นใ—ใชใ„ๆ–นๆณ•ใ‚’็ดนไป‹ใ™ใ‚‹ใ€‚

-
<?php
-
-$x = 0x14B499C;
-
-$x = $x ^ N;
-
-$x = sprintf('%025b', $x);
-$x = str_replace(search: ['0', '1'], replace: [' ', '#'], subject: $x);
-$x = implode("\n", str_split($x, length: 5));
-
-assert($x ===
-" # # \n" .
-"#####\n" .
-" # # \n" .
-"#####\n" .
-" # # ");
+
<?php
+
+$x = 0x14B499C;
+
+$x = $x ^ N;
+
+$x = sprintf('%025b', $x);
+$x = str_replace(search: ['0', '1'], replace: [' ', '#'], subject: $x);
+$x = implode("\n", str_split($x, length: 5));
+
+assert($x ===
+" # # \n" .
+"#####\n" .
+" # # \n" .
+"#####\n" .
+" # # ");
+

ใ“ใฎไธ€้€ฃใฎๅค‰ๆ›ใซๅฏพใ™ใ‚‹้€†ๅค‰ๆ›ใ‚’่€ƒใˆใ‚‹ใจใ€ๆฌกใฎใ‚ˆใ†ใซใชใ‚‹ใ€‚

-
<?php
-
-$x =
-" # # \n" .
-"#####\n" .
-" # # \n" .
-"#####\n" .
-" # # ";
-
-$x = implode('', explode("\n", $x));
-$x = str_replace(search: [' ', '#'], replace: ['0', '1'], subject: $x);
-$x = bindec($x);
-
-$n = $x ^ 0x14B499C;
-
-echo "N = $n\n";
+
<?php
+
+$x =
+" # # \n" .
+"#####\n" .
+" # # \n" .
+"#####\n" .
+" # # ";
+
+$x = implode('', explode("\n", $x));
+$x = str_replace(search: [' ', '#'], replace: ['0', '1'], subject: $x);
+$x = bindec($x);
+
+$n = $x ^ 0x14B499C;
+
+echo "N = $n\n";
+

ใ“ใ‚Œใ‚’ๅฎŸ่กŒใ™ใ‚‹ใจใ€N ใŒๅพ—ใ‚‰ใ‚Œใ‚‹ใ€‚ @@ -559,41 +572,43 @@

toquine.php
-
<?php
-
-// License: https://creativecommons.org/publicdomain/zero/1.0/
-// This is a quine-like program to generate a PHPer token.
-// Execute it like this: php toquine.php | php | php | php | ...
-
-$s = <<<'Q'
-<?cuc
-// Yvprafr: uggcf://perngvirpbzzbaf.bet/choyvpqbznva/mreb/1.0/
-// Guvf vf n dhvar-yvxr cebtenz gb trarengr n CUCre gbxra.
-// Rkrphgr vg yvxr guvf: cuc gbdhvar.cuc | cuc | cuc | cuc | ...
-%f$f = %f;
-$f = fge_ebg13($f); $kf = [
-%f,
-];
-$g = ahyy.snyfr; sbe ($v = 0; $v <= vagqvi(__YVAR__-035,6); ++$v) vs (!vffrg($kf[$v])) oernx; ryfr
-$g .= vzcybqr("\a", fge_fcyvg(fge_ercynpr(['0','1'], ['  ','##'], fcevags(pue(37) . '025o', $kf[$v])), 012)) . "\a\a";
-$jf = neenl_znc(sa($j) => vzcybqr(', ', $j), neenl_puhax(neenl_znc(sa($k) => fcevags('0k' . pue(37) . '07K', $k), $kf), 10));
-cevags($f, $g, fge_ebg13("<<<'Q'\a{$f}\aQ"), vzcybqr(",\a", $jf));
-Q;
-$s = str_rot13($s); $xs = [
-0x0AFABEA, 0x1F294A7, 0x1F2109F, 0x1F294A7, 0x0002800, 0x1F2109F, 0x0117041, 0x1F294A7, 0x1FAD6B5, 0x1F295B7,
-0x010FC21, 0x1FAD6B5, 0x1151151, 0x010FC21, 0x1F294A7, 0x1F295B7, 0x1FAD6B5, 0x1F294A7, 0x1F295B7, 0x1F8C63F,
-0x1F8C631, 0x1FAD6B5, 0x17AD6BD, 0x17AD6BD, 0x1F8C63F, 0x1F295B7,
-];
-$t = null.false; for ($i = 0; $i <= intdiv(__LINE__-035,6); ++$i) if (!isset($xs[$i])) break; else
-$t .= implode("\n", str_split(str_replace(['0','1'], ['  ','##'], sprintf(chr(37) . '025b', $xs[$i])), 012)) . "\n\n";
-$ws = array_map(fn($w) => implode(', ', $w), array_chunk(array_map(fn($x) => sprintf('0x' . chr(37) . '07X', $x), $xs), 10));
-printf($s, $t, str_rot13("<<<'D'\n{$s}\nD"), implode(",\n", $ws));
+
<?php
+
+// License: https://creativecommons.org/publicdomain/zero/1.0/
+// This is a quine-like program to generate a PHPer token.
+// Execute it like this: php toquine.php | php | php | php | ...
+
+$s = <<<'Q'
+<?cuc
+// Yvprafr: uggcf://perngvirpbzzbaf.bet/choyvpqbznva/mreb/1.0/
+// Guvf vf n dhvar-yvxr cebtenz gb trarengr n CUCre gbxra.
+// Rkrphgr vg yvxr guvf: cuc gbdhvar.cuc | cuc | cuc | cuc | ...
+%f$f = %f;
+$f = fge_ebg13($f); $kf = [
+%f,
+];
+$g = ahyy.snyfr; sbe ($v = 0; $v <= vagqvi(__YVAR__-035,6); ++$v) vs (!vffrg($kf[$v])) oernx; ryfr
+$g .= vzcybqr("\a", fge_fcyvg(fge_ercynpr(['0','1'], ['  ','##'], fcevags(pue(37) . '025o', $kf[$v])), 012)) . "\a\a";
+$jf = neenl_znc(sa($j) => vzcybqr(', ', $j), neenl_puhax(neenl_znc(sa($k) => fcevags('0k' . pue(37) . '07K', $k), $kf), 10));
+cevags($f, $g, fge_ebg13("<<<'Q'\a{$f}\aQ"), vzcybqr(",\a", $jf));
+Q;
+$s = str_rot13($s); $xs = [
+0x0AFABEA, 0x1F294A7, 0x1F2109F, 0x1F294A7, 0x0002800, 0x1F2109F, 0x0117041, 0x1F294A7, 0x1FAD6B5, 0x1F295B7,
+0x010FC21, 0x1FAD6B5, 0x1151151, 0x010FC21, 0x1F294A7, 0x1F295B7, 0x1FAD6B5, 0x1F294A7, 0x1F295B7, 0x1F8C63F,
+0x1F8C631, 0x1FAD6B5, 0x17AD6BD, 0x17AD6BD, 0x1F8C63F, 0x1F295B7,
+];
+$t = null.false; for ($i = 0; $i <= intdiv(__LINE__-035,6); ++$i) if (!isset($xs[$i])) break; else
+$t .= implode("\n", str_split(str_replace(['0','1'], ['  ','##'], sprintf(chr(37) . '025b', $xs[$i])), 012)) . "\n\n";
+$ws = array_map(fn($w) => implode(', ', $w), array_chunk(array_map(fn($x) => sprintf('0x' . chr(37) . '07X', $x), $xs), 10));
+printf($s, $t, str_rot13("<<<'D'\n{$s}\nD"), implode(",\n", $ws));
+

ใ‚ณใƒกใƒณใƒˆใซใ‚‚ใ‚ใ‚‹ใจใŠใ‚Šใ€ๆฌกใฎใ‚ˆใ†ใซใ—ใฆๅฎŸ่กŒใ™ใ‚Œใฐ็ญ”ใˆใŒใงใฆใใ‚‹ใ€‚

-
$ php toquine.php | php | php | php | ...
+
$ php toquine.php | php | php | php | ...
+

ๅฎŸ้š›ใซใฏใ‚‚ใ†ๅฐ‘ใ—ใƒ‘ใ‚คใƒ—ใง็น‹ใ’ใชใ‘ใ‚Œใฐใชใ‚‰ใชใ„ใ€‚ -- cgit v1.3-1-g0d28