aboutsummaryrefslogtreecommitdiffhomepage
path: root/content/posts/2022-09-29
diff options
context:
space:
mode:
Diffstat (limited to 'content/posts/2022-09-29')
-rw-r--r--content/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line.xml47
1 files changed, 15 insertions, 32 deletions
diff --git a/content/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line.xml b/content/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line.xml
index 5cb5d93..32c88e8 100644
--- a/content/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line.xml
+++ b/content/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line.xml
@@ -31,35 +31,24 @@
<simpara>PHP で、次のような制約の下に fizzbuzz を書いた。</simpara>
<itemizedlist>
<listitem>
- <simpara>1行あたりの文字数は2文字までに収めること (ただし <literal>&lt;?php</literal> タグは除く)</simpara>
+ 1行あたりの文字数は2文字までに収めること (ただし <literal>&lt;?php</literal> タグは除く)
<itemizedlist>
<listitem>
- <simpara>厳密な定義: <literal>&lt;?php</literal> タグ以降のソースコードが、2 byte ごとに
- ラインフィード (LF) で区切られること</simpara>
+ 厳密な定義: <literal>&lt;?php</literal> タグ以降のソースコードが、2 byte ごとに
+ ラインフィード (LF) で区切られること
</listitem>
</itemizedlist>
</listitem>
+ <listitem>スペースやタブを使用しないこと</listitem>
<listitem>
- <simpara>スペースやタブを使用しないこと</simpara>
- </listitem>
- <listitem>
- <simpara>ループのアンロールをしないこと</simpara>
+ ループのアンロールをしないこと
<itemizedlist>
- <listitem>
- <simpara>100 回ループの代わりに 100 回コードをコピペ、というのは禁止</simpara>
- </listitem>
+ <listitem>100 回ループの代わりに 100 回コードをコピペ、というのは禁止</listitem>
</itemizedlist>
</listitem>
- <listitem>
- <simpara>PHP 7.4〜8.1 で動作すること</simpara>
- </listitem>
- <listitem>
- <simpara>実行時に Notice や Warning が出ないこと</simpara>
- </listitem>
- <listitem>
- <simpara>標準的なインストール構成の PHP で実現できること
- (デフォルトで有効になっていない拡張等を使わないこと)</simpara>
-</listitem>
+ <listitem>PHP 7.4〜8.1 で動作すること</listitem>
+ <listitem>実行時に Notice や Warning が出ないこと</listitem>
+ <listitem>標準的なインストール構成の PHP で実現できること (デフォルトで有効になっていない拡張等を使わないこと)</listitem>
</itemizedlist>
<simpara>備考: PHP には <literal>short_open_tag</literal>
というオプションがあり、これを有効にするとファイル冒頭の <literal>&lt;?php</literal>
@@ -159,13 +148,13 @@
の範囲内において、名前が 2文字以下の関数は以下のとおりである:</simpara>
<itemizedlist>
<listitem>
- <simpara><literal>_</literal>: <literal>gettext</literal> のエイリアス</simpara>
+ <literal>_</literal>: <literal>gettext</literal> のエイリアス
</listitem>
<listitem>
- <simpara><literal>dl</literal>: 拡張モジュールをロードする</simpara>
+ <literal>dl</literal>: 拡張モジュールをロードする
</listitem>
<listitem>
- <simpara><literal>pi</literal>: 円周率を返す</simpara>
+ <literal>pi</literal>: 円周率を返す
</listitem>
</itemizedlist>
<simpara>(環境によって多少は変わるかも)</simpara>
@@ -173,9 +162,7 @@
で読み込む行為は、レギュレーションで定めた</simpara>
<blockquote>
<itemizedlist>
- <listitem>
- <simpara>標準的なインストール構成の PHP で実現できること
- (デフォルトで有効になっていない拡張等を使わないこと)</simpara>
+ <listitem>標準的なインストール構成の PHP で実現できること (デフォルトで有効になっていない拡張等を使わないこと)
</listitem>
</itemizedlist>
</blockquote>
@@ -264,9 +251,7 @@
<simpara>今回使ったテクニックを説明する前に、余談として、文字列リテラルの短縮法として今回採用しなかったものを紹介する。</simpara>
<blockquote>
<itemizedlist>
- <listitem>
- <simpara>PHP 7.4〜8.1 で動作すること</simpara>
- </listitem>
+ <listitem>PHP 7.4〜8.1 で動作すること</listitem>
</itemizedlist>
</blockquote>
<simpara>というルールがない場合、「未定義の定数が評価された場合、その定数の名前が値になる」という
@@ -570,9 +555,7 @@
<simpara>ただし、これでは</simpara>
<blockquote>
<itemizedlist>
- <listitem>
- <simpara>スペースやタブを使用しないこと</simpara>
- </listitem>
+ <listitem>スペースやタブを使用しないこと</listitem>
</itemizedlist>
</blockquote>
<simpara>に違反してしまう。スペースが使えないと引数とコマンドを区切れない。これは困った。</simpara>