<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Latest comments for language 'OCaml' on doukaku.org</title><link>http://ja.doukaku.org/lang/ocaml/</link><description>Latest comments for language 'OCaml' on doukaku.org(long)</description><language>ja</language><lastBuildDate>Sat, 22 Nov 2008 20:47:35 -0000</lastBuildDate><item><title>kanai's comment on 世界時計
</title><link>http://ja.doukaku.org/comment/8030/</link><description>



&lt;a href="http://ja.doukaku.org/213/"&gt;世界時計&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/213/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/213/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  &lt;pre class='compact'&gt;初めての投稿です。もっと格好良く書きたいのですが...
Ubuntu 8.10 で ocamlopt -o doukaku unix.cmxa doukaku.mlでコンパイル後
./doukakuで
現在の時刻は、2008年11月13日 13時25分16秒です。
グリニッジ標準時刻は、2008年11月13日 4時25分16秒です。
アメリカ・ロサンゼルスの時刻は、2008年11月12日 20時25分16秒です。
のように表示できています。&lt;/pre&gt;
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="kr"&gt;open&lt;/span&gt; &lt;span class="n"&gt;Unix&lt;/span&gt;&lt;span class="k"&gt;;;&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;current_time&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="k"&gt;();;&lt;/span&gt;
&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;local_time&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;localtime&lt;/span&gt;&lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;current_time&lt;/span&gt;&lt;span class="k"&gt;);;&lt;/span&gt;
&lt;span class="n"&gt;putenv&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;TZ&amp;quot;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;America/Los_Angeles&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;;;&lt;/span&gt;
&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;us_time&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;localtime&lt;/span&gt;&lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;current_time&lt;/span&gt;&lt;span class="k"&gt;);;&lt;/span&gt;
&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;gm_time&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;gmtime&lt;/span&gt;&lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;current_time&lt;/span&gt;&lt;span class="k"&gt;);;&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;print_time&lt;/span&gt; &lt;span class="n"&gt;locate&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="n"&gt;Printf&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;%s時刻は、%d年%d月%d日 %d時%d分%d秒です。&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;locate&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tm_year&lt;/span&gt; &lt;span class="k"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1900&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tm_mon&lt;/span&gt; &lt;span class="k"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tm_mday&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tm_hour&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tm_min&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tm_sec&lt;/span&gt;&lt;span class="k"&gt;;;&lt;/span&gt;

&lt;span class="n"&gt;print_time&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;現在の&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;local_time&lt;/span&gt;&lt;span class="k"&gt;;;&lt;/span&gt;
&lt;span class="n"&gt;print_time&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;グリニッジ標準&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;gm_time&lt;/span&gt;&lt;span class="k"&gt;;;&lt;/span&gt;
&lt;span class="n"&gt;print_time&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;アメリカ・ロサンゼルスの&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;us_time&lt;/span&gt;&lt;span class="k"&gt;;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/ocaml/"&gt;
      OCaml
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/8030/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/8030/</guid></item><item><title>ocaml-nagoya's comment on 疑似並行処理
</title><link>http://ja.doukaku.org/comment/8023/</link><description>



&lt;a href="http://ja.doukaku.org/215/"&gt;疑似並行処理&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/215/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/215/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  &lt;p&gt;スレッドつくって画面表示。最後のThread.delayは、これが無いとすぐに実行が終了してしまうので、待ちを入れる意味です。&lt;/p&gt;

&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="kr"&gt;open&lt;/span&gt; &lt;span class="n"&gt;Format&lt;/span&gt;
  
&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;spawn_loop&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="kr"&gt;rec&lt;/span&gt; &lt;span class="n"&gt;forever&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; 
    &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt; &lt;span class="n"&gt;forever&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt;
  &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="n"&gt;ignore&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Thread&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;forever&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
    
&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="k"&gt;_&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="n"&gt;spawn_loop&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="k"&gt;()&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt;
    &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iter&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fprintf&lt;/span&gt; &lt;span class="n"&gt;std_formatter&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;%d@?&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;  &lt;span class="k"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="k"&gt;;])&lt;/span&gt; &lt;span class="k"&gt;();&lt;/span&gt;
  &lt;span class="n"&gt;spawn_loop&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="k"&gt;()&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt;
    &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iter&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fprintf&lt;/span&gt; &lt;span class="n"&gt;std_formatter&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;%c@?&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;  &lt;span class="k"&gt;[&lt;/span&gt;&lt;span class="sc"&gt;&amp;#39;A&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;B&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;C&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;D&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;E&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;F&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;G&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;H&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;I&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;J&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;])&lt;/span&gt; &lt;span class="k"&gt;();&lt;/span&gt;
  &lt;span class="n"&gt;Thread&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;delay&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/ocaml/"&gt;
      OCaml
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/8023/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/8023/</guid></item><item><title>komamitsu's comment on 疑似並行処理
</title><link>http://ja.doukaku.org/comment/7987/</link><description>



&lt;a href="http://ja.doukaku.org/215/"&gt;疑似並行処理&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/215/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/215/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  &lt;p&gt;Thread.yield だと切り替わらなかったのでThread.delayを使いました。&lt;/p&gt;

&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="c"&gt;(* ocamlc -thread -o para unix.cma threads.cma para.ml *)&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;para&lt;/span&gt; &lt;span class="n"&gt;printer&lt;/span&gt; &lt;span class="n"&gt;lst&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="n"&gt;Thread&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;
  &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;lst&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt;
    &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iter&lt;/span&gt;
    &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt;
      &lt;span class="n"&gt;printer&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;
      &lt;span class="n"&gt;flush&lt;/span&gt; &lt;span class="n"&gt;stdout&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;
      &lt;span class="n"&gt;Thread&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;delay&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;lst&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;lst&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="k"&gt;_&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iter&lt;/span&gt;
  &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Thread&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;[&lt;/span&gt; &lt;span class="n"&gt;para&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Printf&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;%c &amp;quot;&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;[&lt;/span&gt;&lt;span class="sc"&gt;&amp;#39;A&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;B&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;C&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;D&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;E&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;F&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;G&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;H&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;I&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;J&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;];&lt;/span&gt;
    &lt;span class="n"&gt;para&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Printf&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;%d &amp;quot;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="k"&gt;]&lt;/span&gt; &lt;span class="k"&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/ocaml/"&gt;
      OCaml
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/7987/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/7987/</guid></item><item><title>susu's comment on '('と')'の対応
</title><link>http://ja.doukaku.org/comment/7958/</link><description>



&lt;a href="http://ja.doukaku.org/214/"&gt;&amp;#39;(&amp;#39;と&amp;#39;)&amp;#39;の対応&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/214/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/214/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="c"&gt;(* #! /usr/bin/env ocaml *)&lt;/span&gt;
&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;paren_test&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ref&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
    &lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; 
      &lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="k"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; &lt;span class="n"&gt;raise&lt;/span&gt; &lt;span class="n"&gt;Exit&lt;/span&gt; &lt;span class="kr"&gt;else&lt;/span&gt; &lt;span class="n"&gt;decr&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt;
    &lt;span class="kr"&gt;else&lt;/span&gt; &lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; 
      &lt;span class="n"&gt;incr&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt; 
  &lt;span class="kr"&gt;in&lt;/span&gt; &lt;span class="kr"&gt;try&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iter&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="kr"&gt;with&lt;/span&gt; &lt;span class="n"&gt;Exit&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="kr"&gt;false&lt;/span&gt;&lt;span class="k"&gt;;;&lt;/span&gt;

&lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="n"&gt;not&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;Sys&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;interactive&lt;/span&gt; &lt;span class="k"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;Array&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt; &lt;span class="n"&gt;Sys&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt; &lt;span class="k"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Array&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt; &lt;span class="n"&gt;Sys&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;paren_test&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;\040&amp;#39;&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;\041&amp;#39;&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="n"&gt;Printf&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;%s: %B&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;
&lt;span class="k"&gt;;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/ocaml/"&gt;
      OCaml
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/7958/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/7958/</guid></item><item><title>kozima's comment on 漢数字で九九の表
</title><link>http://ja.doukaku.org/comment/7846/</link><description>



&lt;a href="http://ja.doukaku.org/212/"&gt;漢数字で九九の表&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/212/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/212/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  &lt;p&gt;組み込みの数値を一切使わないで書いてみました。わりと教科書的。&lt;/p&gt;

&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="kr"&gt;type&lt;/span&gt; &lt;span class="n"&gt;digit&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Zero&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;One&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Two&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Three&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Four&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Five&lt;/span&gt;
             &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Six&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Seven&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Eight&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Nine&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;next_digit&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="kr"&gt;function&lt;/span&gt;
    &lt;span class="n"&gt;Zero&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;One&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;One&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Two&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Two&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Three&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Three&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Four&lt;/span&gt;
  &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Four&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Five&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Five&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Six&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Six&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Seven&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Seven&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Eight&lt;/span&gt;
  &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Eight&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Nine&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Nine&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;raise&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Invalid_argument&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;next_digit, nine&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;prev_digit&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="kr"&gt;function&lt;/span&gt;
    &lt;span class="n"&gt;One&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Zero&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Two&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;One&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Three&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Two&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Four&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Three&lt;/span&gt;
  &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Five&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Four&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Six&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Five&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Seven&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Six&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Eight&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Seven&lt;/span&gt;
  &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Nine&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Eight&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Zero&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;raise&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Invalid_argument&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;prev_digit, zero&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;succ&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="kr"&gt;function&lt;/span&gt;
  &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Nine&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Nine&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;raise&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Invalid_argument&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;succ, ninety-nine&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Nine&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;    &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;next_digit&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Zero&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;       &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;next_digit&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;pred&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="kr"&gt;function&lt;/span&gt;
  &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Zero&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Zero&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;raise&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Invalid_argument&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;pred, zero&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Zero&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;    &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prev_digit&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Nine&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;       &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;prev_digit&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="kr"&gt;rec&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="o"&gt;@+&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="kr"&gt;match&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="kr"&gt;with&lt;/span&gt;
    &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Zero&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Zero&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;
    &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="k"&gt;_&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;succ&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pred&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="o"&gt;@+&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="kr"&gt;rec&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="o"&gt;@*&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Zero&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Zero&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Zero&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Zero&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
  &lt;span class="kr"&gt;else&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;@+&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pred&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="o"&gt;@*&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;string_of_digit&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="kr"&gt;function&lt;/span&gt;
  &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Zero&lt;/span&gt;  &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;〇&amp;quot;&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;One&lt;/span&gt;   &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;一&amp;quot;&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Two&lt;/span&gt;   &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;二&amp;quot;&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Three&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;三&amp;quot;&lt;/span&gt;
  &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Four&lt;/span&gt;  &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;四&amp;quot;&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Five&lt;/span&gt;  &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;五&amp;quot;&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Six&lt;/span&gt;   &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;六&amp;quot;&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Seven&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;七&amp;quot;&lt;/span&gt;
  &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Eight&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;八&amp;quot;&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Nine&lt;/span&gt;  &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;九&amp;quot;&lt;/span&gt;
&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;string_of_number&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="kr"&gt;function&lt;/span&gt;
  &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Zero&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;  &amp;quot;&lt;/span&gt; &lt;span class="o"&gt;^&lt;/span&gt; &lt;span class="n"&gt;string_of_digit&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;
  &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;    &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;string_of_digit&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;^&lt;/span&gt; &lt;span class="n"&gt;string_of_digit&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;digit_list&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="k"&gt;[&lt;/span&gt;&lt;span class="n"&gt;One&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;Two&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;Three&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;Four&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;Five&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;Six&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;Seven&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;Eight&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;Nine&lt;/span&gt;&lt;span class="k"&gt;]&lt;/span&gt;
&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="k"&gt;_&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;nums&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Zero&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt; &lt;span class="n"&gt;digit_list&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;products&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="o"&gt;@*&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;nums&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;nums&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;prod_strings&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt; &lt;span class="n"&gt;string_of_number&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;products&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;rows&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;concat&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;  &amp;quot;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;prod_strings&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
    &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iter&lt;/span&gt; &lt;span class="n"&gt;print_endline&lt;/span&gt; &lt;span class="n"&gt;rows&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/ocaml/"&gt;
      OCaml
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/7846/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/7846/</guid></item><item><title>susu's comment on コメントの削除
</title><link>http://ja.doukaku.org/comment/7789/</link><description>



&lt;a href="http://ja.doukaku.org/185/"&gt;コメントの削除&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/185/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/185/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  付属の解析機を使ったあとに読み込んでいるだけです。&lt;br/&gt;空白、改行、タブなどは捨てられてしまいます。
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;decomment&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; 
  &lt;span class="n"&gt;Stream&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iter&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt;
    &lt;span class="n"&gt;print_string&lt;/span&gt; 
      &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;match&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="kr"&gt;with&lt;/span&gt;
      &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Kwd&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Ident&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;
      &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Printf&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sprintf&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="s2"&gt;%s&lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;escaped&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
      &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Char&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Printf&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sprintf&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&amp;#39;%s&amp;#39;&amp;quot;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Char&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;escaped&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
      &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Int&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;string_of_int&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;
      &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Float&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;string_of_float&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;
      &lt;span class="k"&gt;);&lt;/span&gt; &lt;span class="n"&gt;print_char&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39; &amp;#39;&lt;/span&gt;
    &lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;make_lexer&lt;/span&gt; &lt;span class="k"&gt;[]&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Stream&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;of_string&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="k"&gt;));;&lt;/span&gt;

&lt;span class="c"&gt;(* decomment &amp;quot;aa\&amp;quot;(* bb \\\&amp;quot; cc *)\&amp;quot;dd &amp;#39;\\\\&amp;#39; (* zz *) &amp;quot;;; *)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/ocaml/"&gt;
      OCaml
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/7789/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/7789/</guid></item><item><title>susu's comment on RFC 4180対応版 CSVレコードの分解
</title><link>http://ja.doukaku.org/comment/7788/</link><description>



&lt;a href="http://ja.doukaku.org/33/"&gt;RFC 4180対応版 CSVレコードの分解&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/33/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/33/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="c"&gt;(*  ocaml camlp4rf.cma もしくは&lt;/span&gt;
&lt;span class="c"&gt;    ocamlc -pp &amp;quot;camlp4rf&amp;quot; a.ml  *)&lt;/span&gt;

&lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="n"&gt;add_opened_csv_string&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="kr"&gt;rec&lt;/span&gt; &lt;span class="n"&gt;loop&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;parser&lt;/span&gt;
    &lt;span class="k"&gt;[&lt;/span&gt; &lt;span class="k"&gt;[:&lt;/span&gt; &lt;span class="k"&gt;`&lt;/span&gt;&lt;span class="sc"&gt;&amp;#39;&amp;quot;&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="k"&gt;:]&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; 
        &lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Stream&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;peek&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt; &lt;span class="k"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Some&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;&amp;quot;&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; &lt;span class="k"&gt;()&lt;/span&gt;
        &lt;span class="kr"&gt;else&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Buffer&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_char&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Stream&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="k"&gt;);&lt;/span&gt; &lt;span class="n"&gt;loop&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="k"&gt;[:&lt;/span&gt; &lt;span class="k"&gt;`&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt; &lt;span class="k"&gt;:]&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Buffer&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_char&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;loop&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;]&lt;/span&gt;
  &lt;span class="kr"&gt;in&lt;/span&gt; &lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;loop&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="n"&gt;record_iteri&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;use_buffer&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; 
    &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Buffer&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;contents&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="k"&gt;);&lt;/span&gt; &lt;span class="n"&gt;Buffer&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;clear&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="kr"&gt;rec&lt;/span&gt; &lt;span class="n"&gt;loop&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt;  &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;parser&lt;/span&gt;
    &lt;span class="k"&gt;[&lt;/span&gt; &lt;span class="k"&gt;[:&lt;/span&gt; &lt;span class="k"&gt;`&lt;/span&gt;&lt;span class="sc"&gt;&amp;#39;,&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="k"&gt;:]&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;use_buffer&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;loop&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pos&lt;/span&gt;&lt;span class="k"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="k"&gt;[:&lt;/span&gt; &lt;span class="k"&gt;`&lt;/span&gt;&lt;span class="sc"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="k"&gt;:]&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;use_buffer&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt; 
    &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="k"&gt;[:&lt;/span&gt; &lt;span class="k"&gt;`&lt;/span&gt;&lt;span class="sc"&gt;&amp;#39;&amp;quot;&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="k"&gt;:]&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;add_opened_csv_string&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;loop&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="k"&gt;[:&lt;/span&gt; &lt;span class="k"&gt;`&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="k"&gt;:]&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Buffer&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_char&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;loop&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="k"&gt;[:&lt;/span&gt; &lt;span class="k"&gt;:]&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;use_buffer&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt; &lt;span class="k"&gt;]&lt;/span&gt;
  &lt;span class="kr"&gt;in&lt;/span&gt; &lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;loop&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;

&lt;span class="c"&gt;(*&lt;/span&gt;
&lt;span class="c"&gt;value t = Stream.of_string &amp;quot;\&lt;/span&gt;
&lt;span class="c"&gt;  \&amp;quot;aaa\&amp;quot;,\&amp;quot;b\n\&lt;/span&gt;
&lt;span class="c"&gt;  bb\&amp;quot;,\&amp;quot;ccc\&amp;quot;,zzz,\&amp;quot;y\&amp;quot;\&amp;quot;Y\&amp;quot;\&amp;quot;y\&amp;quot;,xxx&amp;quot;;&lt;/span&gt;

&lt;span class="c"&gt;record_iteri t (Printf.printf &amp;quot;%2d =&amp;gt; %s\n&amp;quot;) (Buffer.create 8);&lt;/span&gt;
&lt;span class="c"&gt;*)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/ocaml/"&gt;
      OCaml
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/7788/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/7788/</guid></item><item><title>susu's comment on タブ区切りデータの処理
</title><link>http://ja.doukaku.org/comment/7757/</link><description>



&lt;a href="http://ja.doukaku.org/209/"&gt;タブ区切りデータの処理&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/209/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/209/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;succ_str&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="kr"&gt;try&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;string_of_int&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;int_of_string&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
  &lt;span class="kr"&gt;with&lt;/span&gt; &lt;span class="n"&gt;Failure&lt;/span&gt; &lt;span class="k"&gt;_&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;read&lt;/span&gt; &lt;span class="n"&gt;scanbuf&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;  &lt;span class="kr"&gt;and&lt;/span&gt; &lt;span class="n"&gt;nl&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;  &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="n"&gt;Scanf&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bscanf&lt;/span&gt; &lt;span class="n"&gt;scanbuf&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;%[^&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s2"&gt;]&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s2"&gt;%[^&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s2"&gt;]&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s2"&gt;%[^&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s2"&gt;]&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s2"&gt;%[^&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;]%c&amp;quot;&lt;/span&gt;
  &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="k"&gt;_&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="k"&gt;[&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;succ_str&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;nl&lt;/span&gt;&lt;span class="k"&gt;])&lt;/span&gt;  

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="n"&gt;ch&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;accu&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ref&lt;/span&gt; &lt;span class="k"&gt;[]&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="kr"&gt;try&lt;/span&gt;
    &lt;span class="n"&gt;read&lt;/span&gt; &lt;span class="n"&gt;ch&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iter&lt;/span&gt; &lt;span class="n"&gt;print_string&lt;/span&gt;&lt;span class="k"&gt;);&lt;/span&gt;
    &lt;span class="kr"&gt;while&lt;/span&gt; &lt;span class="kr"&gt;true&lt;/span&gt; &lt;span class="kr"&gt;do&lt;/span&gt;
      &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt; &lt;span class="n"&gt;ch&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;accu&lt;/span&gt; &lt;span class="k"&gt;:=&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="k"&gt;::&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;accu&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
    &lt;span class="kr"&gt;done&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;
  &lt;span class="kr"&gt;with&lt;/span&gt; &lt;span class="n"&gt;End_of_file&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt;
    &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stable_sort&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt;
      &lt;span class="n"&gt;compare&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;hd&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;hd&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;accu&lt;/span&gt;
    &lt;span class="kr"&gt;in&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iter&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iter&lt;/span&gt; &lt;span class="n"&gt;print_string&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="k"&gt;;;&lt;/span&gt;
&lt;span class="c"&gt;(*  &lt;/span&gt;
&lt;span class="c"&gt;let s = &amp;quot;\&lt;/span&gt;
&lt;span class="c"&gt;ID\tSurname\tForename\tAge&lt;/span&gt;
&lt;span class="c"&gt;1\tSato\tHanako\t17&lt;/span&gt;
&lt;span class="c"&gt;0\tSuzuki\tTaro\t18&lt;/span&gt;
&lt;span class="c"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="c"&gt;let (path,o) = &lt;/span&gt;
&lt;span class="c"&gt;  Filename.open_temp_file &amp;quot;doukaku209_&amp;quot; &amp;quot;.txt&amp;quot;;;&lt;/span&gt;
&lt;span class="c"&gt;output_string o s;  close_out o;;&lt;/span&gt;

&lt;span class="c"&gt;let sbuf = Scanf.Scanning.from_file path in (f sbuf);;&lt;/span&gt;
&lt;span class="c"&gt;*)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/ocaml/"&gt;
      OCaml
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/7757/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/7757/</guid></item><item><title>susu's comment on 起動オプションの解析
</title><link>http://ja.doukaku.org/comment/7709/</link><description>



&lt;a href="http://ja.doukaku.org/205/"&gt;起動オプションの解析&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/205/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/205/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  &lt;p&gt;資料としてArg版も。3,5,7には非対応です。&lt;/p&gt;

&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;switch&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;ON&amp;quot;&lt;/span&gt; &lt;span class="kr"&gt;else&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;OFF&amp;quot;&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;cmdopt&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; 
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ref&lt;/span&gt; &lt;span class="kr"&gt;false&lt;/span&gt; 
  &lt;span class="kr"&gt;and&lt;/span&gt; &lt;span class="n"&gt;q&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ref&lt;/span&gt; &lt;span class="kr"&gt;false&lt;/span&gt;
  &lt;span class="kr"&gt;and&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ref&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;-&amp;quot;&lt;/span&gt;
  &lt;span class="kr"&gt;and&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Queue&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt; &lt;span class="k"&gt;()&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;

  &lt;span class="n"&gt;Arg&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parse_argv&lt;/span&gt; &lt;span class="k"&gt;~&lt;/span&gt;&lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="k"&gt;:(&lt;/span&gt;&lt;span class="n"&gt;ref&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;
    &lt;span class="k"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;-o&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Arg&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Set&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;
      &lt;span class="s2"&gt;&amp;quot;-q&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Arg&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Set&lt;/span&gt; &lt;span class="n"&gt;q&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;
      &lt;span class="s2"&gt;&amp;quot;-d&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Arg&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Symbol&lt;/span&gt; &lt;span class="k"&gt;([&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;2&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;;],&lt;/span&gt; &lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="k"&gt;:=&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="k"&gt;),&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;;]&lt;/span&gt; 
    &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;anon&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Queue&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;push&lt;/span&gt; &lt;span class="n"&gt;anon&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;

  &lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="n"&gt;not&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; &lt;span class="n"&gt;raise&lt;/span&gt; &lt;span class="n"&gt;Exit&lt;/span&gt; &lt;span class="k"&gt;;&lt;/span&gt;

  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;len&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Queue&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;

  &lt;span class="n"&gt;Printf&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;\&lt;/span&gt;
&lt;span class="s2"&gt;    [オプション情報]&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;\&lt;/span&gt;
&lt;span class="s2"&gt;    o(output)： %s&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;\&lt;/span&gt;
&lt;span class="s2"&gt;    q(quote)： %s&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;\&lt;/span&gt;
&lt;span class="s2"&gt;    d(debug)： %s&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;\&lt;/span&gt;
&lt;span class="s2"&gt;    &lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;[パラメータ情報]&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;指定数：%d &lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;
    &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;switch&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;switch&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;q&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="n"&gt;len&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;

  &lt;span class="kr"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="kr"&gt;to&lt;/span&gt; &lt;span class="n"&gt;len&lt;/span&gt; &lt;span class="kr"&gt;do&lt;/span&gt; 
    &lt;span class="n"&gt;Printf&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;%2d : %s &lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Queue&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pop&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="k"&gt;);&lt;/span&gt;
  &lt;span class="kr"&gt;done&lt;/span&gt;&lt;span class="k"&gt;;;&lt;/span&gt;

&lt;span class="c"&gt;(* cmdopt [| &amp;quot;prog_name&amp;quot;; &amp;quot;-q&amp;quot;; &amp;quot;-o&amp;quot;; &amp;quot;aa&amp;quot;; &amp;quot;bb&amp;quot;|];; *)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/ocaml/"&gt;
      OCaml
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/7709/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/7709/</guid></item><item><title>susu's comment on LL Golf Hole 8 - 横向きのピラミッドを作る
</title><link>http://ja.doukaku.org/comment/7703/</link><description>



&lt;a href="http://ja.doukaku.org/203/"&gt;LL Golf Hole 8 - 横向きのピラミッドを作る&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/203/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/203/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt;1
2
3
4&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;pyramid&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; 
  &lt;span class="kr"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="kr"&gt;to&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="k"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="kr"&gt;do&lt;/span&gt;
    &lt;span class="n"&gt;print_endline&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;make&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="k"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="kr"&gt;else&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="k"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="k"&gt;-&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;*&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;);&lt;/span&gt;
  &lt;span class="kr"&gt;done&lt;/span&gt;&lt;span class="k"&gt;;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/ocaml/"&gt;
      OCaml
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/7703/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/7703/</guid></item><item><title>susu's comment on 起動オプションの解析
</title><link>http://ja.doukaku.org/comment/7702/</link><description>



&lt;a href="http://ja.doukaku.org/205/"&gt;起動オプションの解析&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/205/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/205/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  OCamlはまだ文字コードがeuc-jpでないと日本語がコンパイルできません。&lt;br/&gt;それと、実行結果が文字化けしたらコンソールをeucで起動してください。&lt;br/&gt;
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="c"&gt;(* lv -Oej xx.ml &amp;gt; xx-ej.ml  euc-jpでない場合の変換&lt;/span&gt;
&lt;span class="c"&gt;   xterm -en euc-jp &amp;amp; &lt;/span&gt;
&lt;span class="c"&gt;   ocaml -I +extlib extLib.cma xx-ej.ml&lt;/span&gt;
&lt;span class="c"&gt;*)(*&lt;/span&gt;
&lt;span class="c"&gt;  スクリプト用途時&lt;/span&gt;
&lt;span class="c"&gt;  #!/usr/bin/env ocaml&lt;/span&gt;
&lt;span class="c"&gt;  #directory &amp;quot;+extlib&amp;quot;;;&lt;/span&gt;
&lt;span class="c"&gt;  #load &amp;quot;extLib.cma&amp;quot;;;&lt;/span&gt;
&lt;span class="c"&gt;*)&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;get&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;OptParse&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Opt&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;
&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;opt&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;OptParse&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Opt&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;opt&lt;/span&gt;
&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;switch&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;ON&amp;quot;&lt;/span&gt; &lt;span class="kr"&gt;else&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;OFF&amp;quot;&lt;/span&gt;
&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;debug&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="kr"&gt;function&lt;/span&gt;
  &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Some&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="kr"&gt;as&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;string_of_int&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;
  &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="k"&gt;_&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;-&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;;;&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;OptParse&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;OptParser&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;make&lt;/span&gt; &lt;span class="k"&gt;~&lt;/span&gt;&lt;span class="n"&gt;usage&lt;/span&gt;&lt;span class="k"&gt;:&lt;/span&gt;
  &lt;span class="s2"&gt;&amp;quot;cmdopt -o [-q] [-d{0|1|2}] 文字列 [文字列 ...]&amp;quot;&lt;/span&gt; &lt;span class="k"&gt;()&lt;/span&gt;
&lt;span class="kr"&gt;and&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;OptParse&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;StdOpt&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;store_true&lt;/span&gt; &lt;span class="k"&gt;()&lt;/span&gt; 
&lt;span class="kr"&gt;and&lt;/span&gt; &lt;span class="n"&gt;q&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;OptParse&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;StdOpt&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;store_true&lt;/span&gt; &lt;span class="k"&gt;()&lt;/span&gt; 
&lt;span class="kr"&gt;and&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;OptParse&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;StdOpt&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;int_option&lt;/span&gt; &lt;span class="k"&gt;();;&lt;/span&gt;
&lt;span class="n"&gt;OptParse&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;OptParser&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt; &lt;span class="k"&gt;~&lt;/span&gt;&lt;span class="n"&gt;short_name&lt;/span&gt;&lt;span class="k"&gt;:&lt;/span&gt;&lt;span class="sc"&gt;&amp;#39;o&amp;#39;&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;OptParse&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;OptParser&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt; &lt;span class="k"&gt;~&lt;/span&gt;&lt;span class="n"&gt;short_name&lt;/span&gt;&lt;span class="k"&gt;:&lt;/span&gt;&lt;span class="sc"&gt;&amp;#39;q&amp;#39;&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="n"&gt;q&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;OptParse&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;OptParser&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt; &lt;span class="k"&gt;~&lt;/span&gt;&lt;span class="n"&gt;short_name&lt;/span&gt;&lt;span class="k"&gt;:&lt;/span&gt;&lt;span class="sc"&gt;&amp;#39;d&amp;#39;&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="k"&gt;;;&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;opts_form&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;format_of_string&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;\&lt;/span&gt;
&lt;span class="s2"&gt;  [オプション情報] &lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;\&lt;/span&gt;
&lt;span class="s2"&gt;  o(output) : %s &lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;\&lt;/span&gt;
&lt;span class="s2"&gt;  q(quote) : %s &lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;\&lt;/span&gt;
&lt;span class="s2"&gt;  d(debug) : %2s &lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;opts_info&lt;/span&gt; &lt;span class="k"&gt;()&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="n"&gt;not&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; 
    &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;print_string&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;-o オプションがありません。&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;exit&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; 
  &lt;span class="kr"&gt;else&lt;/span&gt;
    &lt;span class="n"&gt;Printf&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;printf&lt;/span&gt; &lt;span class="n"&gt;opts_form&lt;/span&gt;
     &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;switch&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;switch&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt; &lt;span class="n"&gt;q&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;debug&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;opt&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;params_info&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; 
  &lt;span class="n"&gt;Printf&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;printf&lt;/span&gt; 
    &lt;span class="s2"&gt;&amp;quot;[パラメータ情報]&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;指定数 : %d &lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="k"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;ExtList&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iteri&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt;
    &lt;span class="n"&gt;Printf&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;%d : %s &lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="k"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="k"&gt;;;&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="k"&gt;_&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; 
  &lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;Sys&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;interactive&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; &lt;span class="k"&gt;()&lt;/span&gt; &lt;span class="kr"&gt;else&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;rest&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;OptParse&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;OptParser&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parse_argv&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;opts_info&lt;/span&gt; &lt;span class="k"&gt;();&lt;/span&gt; &lt;span class="n"&gt;params_info&lt;/span&gt; &lt;span class="n"&gt;rest&lt;/span&gt;&lt;span class="k"&gt;);;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/ocaml/"&gt;
      OCaml
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/7702/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/7702/</guid></item><item><title>susu's comment on 文字列型日時ののN秒後時間取得
</title><link>http://ja.doukaku.org/comment/7588/</link><description>



&lt;a href="http://ja.doukaku.org/204/"&gt;文字列型日時ののN秒後時間取得&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/204/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/204/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;#&lt;/span&gt;&lt;span class="n"&gt;load&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;unix.cma&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;;;&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;scan_time&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="n"&gt;Scanf&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sscanf&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;%4d%2d%2d%2d%2d%2d&amp;quot;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;year&lt;/span&gt; &lt;span class="n"&gt;mon&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt; &lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt;
    &lt;span class="k"&gt;{&lt;/span&gt; &lt;span class="n"&gt;Unix&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tm_sec&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;  &lt;span class="n"&gt;tm_min&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;  &lt;span class="n"&gt;tm_hour&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;
      &lt;span class="n"&gt;tm_mday&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;  &lt;span class="n"&gt;tm_mon&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;mon&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;  &lt;span class="n"&gt;tm_year&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="k"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1900&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;
      &lt;span class="n"&gt;tm_wday&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;  &lt;span class="n"&gt;tm_yday&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;  &lt;span class="n"&gt;tm_isdst&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="kr"&gt;false&lt;/span&gt;
    &lt;span class="k"&gt;}&lt;/span&gt; &lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;;;&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;print_time&lt;/span&gt; &lt;span class="k"&gt;{&lt;/span&gt; 
  &lt;span class="n"&gt;tm_year&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;yy&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;tm_mon&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;mm&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;tm_mday&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;dd&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;tm_hour&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;tm_min&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;Unix&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tm_sec&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;}&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="n"&gt;Printf&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;%d%02d%02d%02d%02d%02d&amp;quot;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;yy&lt;/span&gt;&lt;span class="k"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1900&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;mm&lt;/span&gt; &lt;span class="n"&gt;dd&lt;/span&gt; &lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="k"&gt;;;&lt;/span&gt;
  
&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;date_ex&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="n"&gt;sec&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="k"&gt;{&lt;/span&gt;&lt;span class="n"&gt;Unix&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tm_sec&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tsec&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt; &lt;span class="kr"&gt;as&lt;/span&gt; &lt;span class="n"&gt;tm&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scan_time&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="n"&gt;print_time&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;snd&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Unix&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mktime&lt;/span&gt; &lt;span class="k"&gt;{&lt;/span&gt;&lt;span class="n"&gt;tm&lt;/span&gt; &lt;span class="kr"&gt;with&lt;/span&gt; &lt;span class="n"&gt;Unix&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tm_sec&lt;/span&gt;&lt;span class="k"&gt;=&lt;/span&gt;&lt;span class="n"&gt;tsec&lt;/span&gt;&lt;span class="k"&gt;+&lt;/span&gt;&lt;span class="n"&gt;sec&lt;/span&gt;&lt;span class="k"&gt;}));;&lt;/span&gt;

&lt;span class="c"&gt;(* date_ex &amp;quot;20080827235925&amp;quot; 40;; *)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/ocaml/"&gt;
      OCaml
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/7588/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/7588/</guid></item><item><title>gtaka555's comment on LL Golf Hole 7 - バイト数を読みやすくする
</title><link>http://ja.doukaku.org/comment/7493/</link><description>



&lt;a href="http://ja.doukaku.org/202/"&gt;LL Golf Hole 7 - バイト数を読みやすくする&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/202/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/202/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  &lt;p&gt;OCamlで。&lt;/p&gt;
&lt;p&gt;値は引数文字列, 1k = 1000, 小数点は 1 桁まで, 切捨てです。&lt;/p&gt;
&lt;p&gt;短くして 247 bytes でした&lt;/p&gt;

&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;foo&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot; kMGT&amp;quot;&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;idx&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt; &lt;span class="kr"&gt;mod&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="kr"&gt;else&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
    &lt;span class="n"&gt;Printf&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;%s%s %cbytes&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;
      &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sub&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt; &lt;span class="k"&gt;-&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;idx&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="k"&gt;)))&lt;/span&gt;
      &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt; &lt;span class="k"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;.&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;^&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sub&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="k"&gt;-(&lt;/span&gt;&lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="k"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="kr"&gt;else&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
      &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="k"&gt;.[&lt;/span&gt;&lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="k"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;;;&lt;/span&gt;

&lt;span class="c"&gt;(*&lt;/span&gt;
&lt;span class="c"&gt;短く&lt;/span&gt;
&lt;span class="c"&gt;let f n = let u = &amp;quot; kMGT&amp;quot; in let l = String.length n in let x = if (l mod 3) == 0 then (l / 3) - 1 else (l / 3) in Printf.printf &amp;quot;%s%s %cbytes\n&amp;quot; (String.sub n 0 (l - (x * 3))) (if l &amp;gt; 3 then &amp;quot;.&amp;quot;^(String.sub n (l-(x*3)) 1) else &amp;quot;&amp;quot;) u.[x];;&lt;/span&gt;
&lt;span class="c"&gt;*)&lt;/span&gt;

&lt;span class="n"&gt;foo&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;76543210&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/ocaml/"&gt;
      OCaml
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/7493/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/7493/</guid></item><item><title>gtaka555's comment on LL Golf Hole 8 - 横向きのピラミッドを作る
</title><link>http://ja.doukaku.org/comment/7490/</link><description>



&lt;a href="http://ja.doukaku.org/203/"&gt;LL Golf Hole 8 - 横向きのピラミッドを作る&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/203/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/203/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  &lt;p&gt;OCaml で&lt;/p&gt;

&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;foo&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;make&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="sc"&gt;&amp;#39;*&amp;#39;&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="kr"&gt;rec&lt;/span&gt; &lt;span class="n"&gt;bar&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
    &lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="k"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; &lt;span class="k"&gt;()&lt;/span&gt;
    &lt;span class="kr"&gt;else&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;
      &lt;span class="n"&gt;print_string&lt;/span&gt; &lt;span class="k"&gt;((&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sub&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="k"&gt;-(&lt;/span&gt;&lt;span class="n"&gt;abs&lt;/span&gt;&lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="k"&gt;))))&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;);&lt;/span&gt;
      &lt;span class="n"&gt;bar&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="k"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;)&lt;/span&gt;
  &lt;span class="kr"&gt;in&lt;/span&gt;
    &lt;span class="n"&gt;bar&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;-&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;;;&lt;/span&gt;

&lt;span class="n"&gt;foo&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="k"&gt;;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/ocaml/"&gt;
      OCaml
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/7490/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/7490/</guid></item><item><title>komamitsu's comment on 必ず解ける迷路
</title><link>http://ja.doukaku.org/comment/7413/</link><description>



&lt;a href="http://ja.doukaku.org/123/"&gt;必ず解ける迷路&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/123/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/123/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  &lt;p&gt;osiireさんからブログ経由でアドバイスを頂いたのを皮切りに、色々無駄な処理が気になってきたので再度修正した自己満足第三弾。Array.iter等を使うように、などなど。&lt;/p&gt;

&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="kr"&gt;type&lt;/span&gt; &lt;span class="n"&gt;field&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Space&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Wall&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;int_of_string&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Sys&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="k"&gt;.(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;int_of_string&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Sys&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="k"&gt;.(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="kr"&gt;rec&lt;/span&gt; &lt;span class="n"&gt;repeate&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="k"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; &lt;span class="n"&gt;repeate&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="k"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="kr"&gt;else&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;make_line&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Array&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;make&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="k"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;make_empty_line&lt;/span&gt; &lt;span class="k"&gt;()&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;make_line&lt;/span&gt; &lt;span class="n"&gt;Space&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;make_filled_line&lt;/span&gt; &lt;span class="k"&gt;()&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;make_line&lt;/span&gt; &lt;span class="n"&gt;Wall&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;print_line&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="n"&gt;print_string&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;■&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;Array&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iter&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;
    &lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Wall&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; &lt;span class="n"&gt;print_string&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;■&amp;quot;&lt;/span&gt; &lt;span class="kr"&gt;else&lt;/span&gt; &lt;span class="n"&gt;print_string&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;　&amp;quot;&lt;/span&gt;
  &lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;print_endline&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;■&amp;quot;&lt;/span&gt;

&lt;span class="kr"&gt;type&lt;/span&gt; &lt;span class="n"&gt;mode&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Top&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Normal&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;make_maze&lt;/span&gt; &lt;span class="n"&gt;mode&lt;/span&gt; &lt;span class="n"&gt;lines&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;way&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="kr"&gt;match&lt;/span&gt; &lt;span class="n"&gt;mode&lt;/span&gt; &lt;span class="kr"&gt;with&lt;/span&gt; &lt;span class="n"&gt;Top&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Normal&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="kr"&gt;rec&lt;/span&gt; &lt;span class="n"&gt;make_wall&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
    &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
      &lt;span class="kr"&gt;match&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Random&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;int&lt;/span&gt; &lt;span class="n"&gt;way&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="kr"&gt;with&lt;/span&gt;
      &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt; &lt;span class="k"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
      &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
      &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt; &lt;span class="k"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
      &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
      &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="k"&gt;_&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;failwith&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;invalid value&amp;quot;&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
    &lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="n"&gt;lines&lt;/span&gt;&lt;span class="k"&gt;.(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="k"&gt;).(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Wall&lt;/span&gt;
      &lt;span class="kr"&gt;then&lt;/span&gt; &lt;span class="n"&gt;make_wall&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt;
      &lt;span class="kr"&gt;else&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;lines&lt;/span&gt;&lt;span class="k"&gt;.(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;).(&lt;/span&gt;&lt;span class="n"&gt;pos&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="n"&gt;Wall&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;lines&lt;/span&gt;&lt;span class="k"&gt;.(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="k"&gt;).(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="n"&gt;Wall&lt;/span&gt;
      &lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="n"&gt;Array&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iteri&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="kr"&gt;mod&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; &lt;span class="n"&gt;make_wall&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;lines&lt;/span&gt;&lt;span class="k"&gt;.(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;main&lt;/span&gt; &lt;span class="k"&gt;()&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="k"&gt;_&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Random&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;init&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;int_of_float&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Unix&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt; &lt;span class="k"&gt;()))&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;draw_maze&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt; &lt;span class="n"&gt;last_line&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
    &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;lines&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="k"&gt;[|&lt;/span&gt;&lt;span class="n"&gt;last_line&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt; &lt;span class="n"&gt;make_empty_line&lt;/span&gt; &lt;span class="k"&gt;();&lt;/span&gt; &lt;span class="n"&gt;make_empty_line&lt;/span&gt; &lt;span class="k"&gt;()|]&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
    &lt;span class="n"&gt;make_maze&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; &lt;span class="n"&gt;Top&lt;/span&gt; &lt;span class="kr"&gt;else&lt;/span&gt; &lt;span class="n"&gt;Normal&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;lines&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;print_line&lt;/span&gt; &lt;span class="n"&gt;lines&lt;/span&gt;&lt;span class="k"&gt;.(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="k"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;print_line&lt;/span&gt; &lt;span class="n"&gt;lines&lt;/span&gt;&lt;span class="k"&gt;.(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;lines&lt;/span&gt;&lt;span class="k"&gt;.(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;filled_line&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;make_filled_line&lt;/span&gt; &lt;span class="k"&gt;()&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="n"&gt;print_line&lt;/span&gt; &lt;span class="n"&gt;filled_line&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;print_line&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;repeate&lt;/span&gt; &lt;span class="n"&gt;draw_maze&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;make_empty_line&lt;/span&gt; &lt;span class="k"&gt;())&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="k"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;print_line&lt;/span&gt; &lt;span class="n"&gt;filled_line&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="k"&gt;_&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;main&lt;/span&gt; &lt;span class="k"&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/ocaml/"&gt;
      OCaml
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/7413/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/7413/</guid></item><item><title>komamitsu's comment on 必ず解ける迷路
</title><link>http://ja.doukaku.org/comment/7392/</link><description>



&lt;a href="http://ja.doukaku.org/123/"&gt;必ず解ける迷路&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/123/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/123/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  &lt;p&gt;壁かどうかはヴァリアントにすべきでした…
自己満足ですが修正版を。&lt;/p&gt;

&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="kr"&gt;type&lt;/span&gt; &lt;span class="n"&gt;field&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Space&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Wall&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;int_of_string&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Sys&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="k"&gt;.(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;int_of_string&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Sys&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="k"&gt;.(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;line_loop&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="n"&gt;func&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="kr"&gt;rec&lt;/span&gt; &lt;span class="n"&gt;loop&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
    &lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt; &lt;span class="k"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="k"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;
      &lt;span class="n"&gt;func&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;
      &lt;span class="n"&gt;loop&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pos&lt;/span&gt; &lt;span class="k"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="n"&gt;loop&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;make_line&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Array&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;make&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="k"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;make_empty_line&lt;/span&gt; &lt;span class="k"&gt;()&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;make_line&lt;/span&gt; &lt;span class="n"&gt;Space&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;make_filled_line&lt;/span&gt; &lt;span class="k"&gt;()&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;make_line&lt;/span&gt; &lt;span class="n"&gt;Wall&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;make_checked_line&lt;/span&gt; &lt;span class="k"&gt;()&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;make_empty_line&lt;/span&gt; &lt;span class="k"&gt;()&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="n"&gt;line_loop&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;
    &lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="kr"&gt;mod&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="k"&gt;.(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="n"&gt;Wall&lt;/span&gt;
  &lt;span class="k"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;line&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;print_line&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="n"&gt;print_string&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;■&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;line_loop&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;
    &lt;span class="kr"&gt;fun&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="k"&gt;.(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Wall&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; &lt;span class="n"&gt;print_string&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;■&amp;quot;&lt;/span&gt; &lt;span class="kr"&gt;else&lt;/span&gt; &lt;span class="n"&gt;print_string&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;　&amp;quot;&lt;/span&gt;
  &lt;span class="k"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;print_endline&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;■&amp;quot;&lt;/span&gt;

&lt;span class="k"&gt;_&lt;/span&gt;&lt;span class="n"&gt;build&lt;/span&gt;  &lt;span class="n"&gt;maze&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ml&lt;/span&gt;
&lt;span class="kr"&gt;type&lt;/span&gt; &lt;span class="n"&gt;mode&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Top&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Normal&lt;/span&gt;

&lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;make_maze&lt;/span&gt; &lt;span class="n"&gt;mode&lt;/span&gt; &lt;span class="n"&gt;lines&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="n"&gt;way&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="kr"&gt;match&lt;/span&gt; &lt;span class="n"&gt;mode&lt;/span&gt; &lt;span class="kr"&gt;with&lt;/span&gt; &lt;span class="n"&gt;Top&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt; &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="n"&gt;Normal&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
  &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="kr"&gt;rec&lt;/span&gt; &lt;span class="n"&gt;make_wall&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
    &lt;span class="kr"&gt;let&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
      &lt;span class="kr"&gt;match&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Random&lt;/span&gt;&lt;span class="k"&gt;.&lt;/span&gt;&lt;span class="n"&gt;int&lt;/span&gt; &lt;span class="n"&gt;way&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="kr"&gt;with&lt;/span&gt;
      &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt; &lt;span class="k"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
      &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
      &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt; &lt;span class="k"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
      &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pos&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
      &lt;span class="k"&gt;|&lt;/span&gt; &lt;span class="k"&gt;_&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;failwith&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;invalid value&amp;quot;&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt;
    &lt;span class="kr"&gt;if&lt;/span&gt; &lt;span class="n"&gt;lines&lt;/span&gt;&lt;span class="k"&gt;.(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="k"&gt;).(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Wall&lt;/span&gt; &lt;span class="kr"&gt;then&lt;/span&gt; &lt;spa