summaryrefslogtreecommitdiffhomepage
path: root/vhosts/blog/public/posts/2022-04-09/phperkaigi-2022-tokens/index.html
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-06-15 13:12:46 +0900
committernsfisis <nsfisis@gmail.com>2025-06-15 13:13:24 +0900
commita65bb9609284d273f0aa232dbaf69597c87f5a12 (patch)
treebec63ad11f79fee55dd07c27625c5f692af2b7aa /vhosts/blog/public/posts/2022-04-09/phperkaigi-2022-tokens/index.html
parentc2252e60d3ab192271e4241943dd165087567af8 (diff)
downloadnsfisis.dev-a65bb9609284d273f0aa232dbaf69597c87f5a12.tar.gz
nsfisis.dev-a65bb9609284d273f0aa232dbaf69597c87f5a12.tar.zst
nsfisis.dev-a65bb9609284d273f0aa232dbaf69597c87f5a12.zip
feat(blog/nuldoc): merge consecutive text nodes
Diffstat (limited to 'vhosts/blog/public/posts/2022-04-09/phperkaigi-2022-tokens/index.html')
-rw-r--r--vhosts/blog/public/posts/2022-04-09/phperkaigi-2022-tokens/index.html18
1 files changed, 9 insertions, 9 deletions
diff --git a/vhosts/blog/public/posts/2022-04-09/phperkaigi-2022-tokens/index.html b/vhosts/blog/public/posts/2022-04-09/phperkaigi-2022-tokens/index.html
index 581e229f..46ccdb89 100644
--- a/vhosts/blog/public/posts/2022-04-09/phperkaigi-2022-tokens/index.html
+++ b/vhosts/blog/public/posts/2022-04-09/phperkaigi-2022-tokens/index.html
@@ -263,7 +263,7 @@
<section id="section--q1-brainfuck--commentary--numbers">
<h4><a href="#section--q1-brainfuck--commentary--numbers">リテラルなしで数値を生成する</a></h4>
<p>
- ソースコード中に、ほとんど数値リテラルが書かれていないことにお気づきだろうか。 PHP では、型変換を利用することで任意の整数を作り出すことができる。
+ ソースコード中に、ほとんど数値リテラルが書かれていないことにお気づきだろうか。PHP では、型変換を利用することで任意の整数を作り出すことができる。
</p>
<div class="codeblock">
<pre class="shiki github-light" style="background-color:#f5f5f5;color:#24292e" tabindex="0"><code><span class="line"><span style="color:#005CC5">assert</span><span style="color:#24292E">(</span><span style="color:#005CC5">0</span><span style="color:#D73A49"> ===</span><span style="color:#D73A49"> +!!</span><span style="color:#24292E">[]);</span></span>
@@ -282,7 +282,7 @@
<section id="section--q1-brainfuck--commentary--conditionals">
<h4><a href="#section--q1-brainfuck--commentary--conditionals"><code>if</code> 文なしで条件分岐</a></h4>
<p>
- 三項演算子ないし <code>match</code> 式を使うことで、<code>if</code> を一切書かずに条件分岐ができる。 また、<code>&amp;&amp;</code> / <code>||</code> も使えることがある。 遅延評価が不要なケースでは、<code>[$t, $f][$cond]</code> のような形で分岐することもできる。
+ 三項演算子ないし <code>match</code> 式を使うことで、<code>if</code> を一切書かずに条件分岐ができる。 また、<code>&amp;&amp;</code> / <code>||</code> も使えることがある。遅延評価が不要なケースでは、<code>[$t, $f][$cond]</code> のような形で分岐することもできる。
</p>
</section>
<section id="section--q1-brainfuck--commentary--loops">
@@ -344,7 +344,7 @@
<span class="line"><span style="color:#24292E">}</span></span></code></pre>
</div>
<p>
- さて、この問題はさきほどのように単純に実行しただけでは、謎のブロックが表示されるだけでトークンは得られない。 トークンを得るためには、ソースコードを読み、定数 <code>N</code> を特定する必要がある。
+ さて、この問題はさきほどのように単純に実行しただけでは、謎のブロックが表示されるだけでトークンは得られない。トークンを得るためには、ソースコードを読み、定数 <code>N</code> を特定する必要がある。
</p>
<p>
ここでは、私の想定解を解説する。
@@ -407,7 +407,7 @@
</li>
</ul>
<p>
- ここで、PHPer トークンは必ず <code>#</code> 記号から始まることを思いだすと、 <code>$token</code> の最初の数字 <code>0x14B499C</code> は、変換の結果 <code>#</code> になるのではないかと予想される (なお、このことは、リポジトリの README ファイルに追加ヒントとして書かれている)。
+ ここで、PHPer トークンは必ず <code>#</code> 記号から始まることを思いだすと、<code>$token</code> の最初の数字 <code>0x14B499C</code> は、変換の結果 <code>#</code> になるのではないかと予想される (なお、このことは、リポジトリの README ファイルに追加ヒントとして書かれている)。
</p>
</section>
<section id="section--q2-riddle--solve">
@@ -521,10 +521,10 @@
<section id="section--q3-toquine--commentary--quine">
<h4><a href="#section--q3-toquine--commentary--quine">プログラム全体</a></h4>
<p>
- コメントにもあるとおり、これは quine (風) のプログラムになっている。 Quine とは、自分のソースコードをそっくりそのまま出力するようなプログラムのことである。
+ コメントにもあるとおり、これは quine (風) のプログラムになっている。Quine とは、自分のソースコードをそっくりそのまま出力するようなプログラムのことである。
</p>
<p>
- このプログラムは、実行すると自身とほとんど同じプログラムを出力する。 異なるのはトークンになっている部分のみである。
+ このプログラムは、実行すると自身とほとんど同じプログラムを出力する。異なるのはトークンになっている部分のみである。
</p>
</section>
<section id="section--q3-toquine--commentary--tokens">
@@ -536,13 +536,13 @@
<section id="section--q3-toquine--commentary--states">
<h4><a href="#section--q3-toquine--commentary--states">状態保持</a></h4>
<p>
- トークンの何文字目まで出力したかを、ソースコードを変えずに (quine なので) 覚えておく必要がある。 このプログラムでは、トークンが出力されるとソースコードがだんだんと長くなっていくのを利用して、<code>__LINE__</code> から情報を取得している。
+ トークンの何文字目まで出力したかを、ソースコードを変えずに (quine なので) 覚えておく必要がある。このプログラムでは、トークンが出力されるとソースコードがだんだんと長くなっていくのを利用して、<code>__LINE__</code> から情報を取得している。
</p>
</section>
<section id="section--q3-toquine--commentary--rot-13">
<h4><a href="#section--q3-toquine--commentary--rot-13">ROT 13</a></h4>
<p>
- Quine は、素朴に書くとプログラムの一部が 2回記述されてしまう。 これがあまり美しくないので、<code>toquine.php</code> では、ROT 13 変換を使って難読化した。
+ Quine は、素朴に書くとプログラムの一部が 2回記述されてしまう。これがあまり美しくないので、<code>toquine.php</code> では、ROT 13 変換を使って難読化した。
</p>
<p>
それにしてもなぜこんなものが標準ライブラリに……。
@@ -556,7 +556,7 @@
解いていただいたみなさん、また、難易度調整につきあっていただいた社内のみなさん、ありがとうございました。
</p>
<p>
- 今回は直前に作りはじめたのもあり、3問だけかつ使い古されたネタばかりになってしまいましたが、 来年は 5問、より面白い問題を持っていきます。
+ 今回は直前に作りはじめたのもあり、3問だけかつ使い古されたネタばかりになってしまいましたが、来年は 5問、より面白い問題を持っていきます。
</p>
<p>
実はもう作りはじめているので、どうか来年もありますように……。