aboutsummaryrefslogtreecommitdiffhomepage
path: root/public/posts/2022-09-29
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2023-03-15 02:20:00 +0900
committernsfisis <nsfisis@gmail.com>2023-03-16 14:05:15 +0900
commit7b6319986030fc8a2fb5f851a431b5113e774f60 (patch)
tree522cb3837707660373ddaf43da26bc2bf1dbc683 /public/posts/2022-09-29
parentbfac7998b0f7abd8dbde016535037cf1d3174336 (diff)
downloadblog.nsfisis.dev-7b6319986030fc8a2fb5f851a431b5113e774f60.tar.gz
blog.nsfisis.dev-7b6319986030fc8a2fb5f851a431b5113e774f60.tar.zst
blog.nsfisis.dev-7b6319986030fc8a2fb5f851a431b5113e774f60.zip
fix(content): fix XML notations
Diffstat (limited to 'public/posts/2022-09-29')
-rw-r--r--public/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line/index.html488
1 files changed, 244 insertions, 244 deletions
diff --git a/public/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line/index.html b/public/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line/index.html
index 4d63296..480c2eb 100644
--- a/public/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line/index.html
+++ b/public/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line/index.html
@@ -126,79 +126,79 @@
</p>
<pre class="highlight" language="c" linenumbering="unnumbered"><code>#\
- i\
- n\
- c\
- l\
- u\
- d\
- e\
- &lt;\
- s\
- t\
- d\
- i\
- o\
- .\
- h\
- &gt;\
- /*
- */
- i\
- n\
- t\
- /*
- */
- m\
- a\
- i\
- n(
- ){
- f\
- o\
- r(
- i\
- n\
- t\
- /*
- */
- i=
- 1;
- i&lt;
- 1\
- 0\
- 0;
- i\
- +\
- +)
- if
- (i
- %\
- 15
- ==
- 0)
- p\
- r\
- i\
- n\
- t\
- f(
- &quot;\
- F\
- i\
- z\
- z\
- B\
- u\
- z\
- z\
- %\
- c\
- &quot;,
- 10
- );
+i\
+n\
+c\
+l\
+u\
+d\
+e\
+&lt;\
+s\
+t\
+d\
+i\
+o\
+.\
+h\
+&gt;\
+/*
+*/
+i\
+n\
+t\
+/*
+*/
+m\
+a\
+i\
+n(
+){
+f\
+o\
+r(
+i\
+n\
+t\
+/*
+*/
+i=
+1;
+i&lt;
+1\
+0\
+0;
+i\
++\
++)
+if
+(i
+%\
+15
+==
+0)
+p\
+r\
+i\
+n\
+t\
+f(
+&quot;\
+F\
+i\
+z\
+z\
+B\
+u\
+z\
+z\
+%\
+c\
+&quot;,
+10
+);
- /* あとは同じように普通のプログラムを変形するだけなので省略 */</code></pre>
+/* あとは同じように普通のプログラムを変形するだけなので省略 */</code></pre>
<p>
バックスラッシュを使った行継続がトークンを区切らない、というのがポイントだ。
@@ -280,11 +280,11 @@ a&apos;
まずは普通に書くとしよう。
</p>
- <pre class="monospaced highlight"><code>&lt;?php
+ <pre class="highlight" language="php" linenumbering="unnumbered"><code>&lt;?php
- for ($i = 1; $i &lt; 100; $i++) {
- echo (($i % 3 ? &apos;&apos; : &apos;Fizz&apos;) . ($i % 5 ? &apos;&apos; : &apos;Buzz&apos;) ?: $i) . &quot;\n&quot;;
- }</code></pre>
+for ($i = 1; $i &lt; 100; $i++) {
+ echo (($i % 3 ? &apos;&apos; : &apos;Fizz&apos;) . ($i % 5 ? &apos;&apos; : &apos;Buzz&apos;) ?: $i) . &quot;\n&quot;;
+}</code></pre>
<p>
素直に書いた fizzbuzz とは言い難いが、このくらいは普通だということにしておかないと、この先がやっていられないので許してほしい。
@@ -299,12 +299,12 @@ a&apos;
<pre class="highlight" language="php" linenumbering="unnumbered"><code>&lt;?php
- $s = range(1, 100);
- array_walk(
+$s = range(1, 100);
+array_walk(
$s,
fn($i) =&gt;
- printf((($i % 3 ? &apos;&apos; : &apos;Fizz&apos;) . ($i % 5 ? &apos;&apos; : &apos;Buzz&apos;) ?: $i) . &quot;\n&quot;),
- );</code></pre>
+ printf((($i % 3 ? &apos;&apos; : &apos;Fizz&apos;) . ($i % 5 ? &apos;&apos; : &apos;Buzz&apos;) ?: $i) . &quot;\n&quot;),
+);</code></pre>
<p>
<code>array_walk</code>や<code>range</code>、<code>printf</code>といった<code>for</code>よりも長いトークンが現れてしまったが、これは次節で直すことにする。なお、<code>echo</code>は文 (statement) であり式 (expression) ではないので、式である<code>printf</code>に置き換えた。
@@ -319,16 +319,16 @@ a&apos;
<pre class="highlight" language="php" linenumbering="unnumbered"><code>&lt;?php
- $r = &apos;range&apos;;
- $w = &apos;array_walk&apos;;
- $p = &apos;printf&apos;;
+$r = &apos;range&apos;;
+$w = &apos;array_walk&apos;;
+$p = &apos;printf&apos;;
- $s = $r(1, 100);
- $w(
+$s = $r(1, 100);
+$w(
$s,
fn($i) =&gt;
- $p((($i % 3 ? &apos;&apos; : &apos;Fizz&apos;) . ($i % 5 ? &apos;&apos; : &apos;Buzz&apos;) ?: $i) . &quot;\n&quot;),
- );</code></pre>
+ $p((($i % 3 ? &apos;&apos; : &apos;Fizz&apos;) . ($i % 5 ? &apos;&apos; : &apos;Buzz&apos;) ?: $i) . &quot;\n&quot;),
+);</code></pre>
<p>
これで関数を呼び出している所は短くなった。では、<code>$r</code>や<code>$w</code>や<code>$p</code>、また<code>&apos;Fizz&apos;</code>や<code>&apos;Buzz&apos;</code>はどうやって 1行2文字に収めるのか。次のテクニックへ移ろう。
@@ -470,153 +470,153 @@ echo &quot;$r\n&quot;;</code></pre>
<pre class="highlight" language="php" linenumbering="unnumbered"><code>&lt;?php
- $x
- =#
- &apos;i
- S&apos;
- ;;
- $y
- =&apos;
- b!
- &apos;;
- $c
- =#
- $x
- ^#
- $y
- ;#
- $x
- =#
- &apos;x
- Om
- &apos;;
- $y
- =&apos;
- k!
- o&apos;
- ;#
- $r
- =#
- $x
- ^#
- $y
- ;#
- $x
- =#
- &apos;k
- Sk
- ~}
- Ma
- &apos;;
- $y
- =&apos;
- x!
- s!
- k!
- &apos;;
- $w
- =#
- $x
- ^#
- $y
- ;#
- $x
- =#
- &apos;z
- Hd
- G&apos;
- ;#
- $y
- =&apos;
- x!
- ~!
- &apos;;
- $p
- =#
- $x
- ^#
- $y
- ;#
- $x
- =#
- &apos;L
- [p
- &apos;;
- $y
- =&apos;
- c!
- &apos;;
- $f
- =#
- $x
- ^#
- $y
- ;#
- $x
- =#
- &apos;H
- [p
- &apos;;
- $y
- =&apos;
- _!
- &apos;;
- $b
- =#
- $x
- ^#
- $y
- ;#
- $b
- [1
- ]=
- $c
- (#
- 13
- *9
- );
- $s
- =#
- $r
- (1
- ,(
- 10
- **
- 2)
- );
- $w
- (#
- $s
- ,#
- fn
- (#
- $i
- )#
- =&gt;
- $p
- ((
- (#
- $i
- %3
- ?#
- &apos;&apos;
- :#
- $f
- ).
- (#
- $i
- %5
- ?#
- &apos;&apos;
- :#
- $b
- )?
- :#
- $i
- )#
- .&apos;
- &apos;)
- );</code></pre>
+$x
+=#
+&apos;i
+S&apos;
+;;
+$y
+=&apos;
+b!
+&apos;;
+$c
+=#
+$x
+^#
+$y
+;#
+$x
+=#
+&apos;x
+Om
+&apos;;
+$y
+=&apos;
+k!
+o&apos;
+;#
+$r
+=#
+$x
+^#
+$y
+;#
+$x
+=#
+&apos;k
+Sk
+~}
+Ma
+&apos;;
+$y
+=&apos;
+x!
+s!
+k!
+&apos;;
+$w
+=#
+$x
+^#
+$y
+;#
+$x
+=#
+&apos;z
+Hd
+G&apos;
+;#
+$y
+=&apos;
+x!
+~!
+&apos;;
+$p
+=#
+$x
+^#
+$y
+;#
+$x
+=#
+&apos;L
+[p
+&apos;;
+$y
+=&apos;
+c!
+&apos;;
+$f
+=#
+$x
+^#
+$y
+;#
+$x
+=#
+&apos;H
+[p
+&apos;;
+$y
+=&apos;
+_!
+&apos;;
+$b
+=#
+$x
+^#
+$y
+;#
+$b
+[1
+]=
+$c
+(#
+13
+*9
+);
+$s
+=#
+$r
+(1
+,(
+10
+**
+2)
+);
+$w
+(#
+$s
+,#
+fn
+(#
+$i
+)#
+=&gt;
+$p
+((
+(#
+$i
+%3
+?#
+&apos;&apos;
+:#
+$f
+).
+(#
+$i
+%5
+?#
+&apos;&apos;
+:#
+$b
+)?
+:#
+$i
+)#
+.&apos;
+&apos;)
+);</code></pre>
</section>
<section id="section--_感想など">
@@ -638,16 +638,16 @@ echo &quot;$r\n&quot;;</code></pre>
<pre class="highlight" language="php" linenumbering="unnumbered"><code>&lt;?php
- printf(`
- e\
- c\
- h\
- o\
- \
- 1\
- 2\
- 3\
- `);</code></pre>
+printf(`
+e\
+c\
+h\
+o\
+\
+1\
+2\
+3\
+`);</code></pre>
<p>
なお、ここでは簡単のため出力に<code>printf</code>をそのまま使っているが、実際には<code>printf</code>という文字列を合成して可変関数で呼び出す。