¥È¥Ã¥×   ÊÔ½¸ º¹Ê¬ ¥Ð¥Ã¥¯¥¢¥Ã¥× źÉÕ Ê£À½ ̾Á°Êѹ¹ ¥ê¥í¡¼¥É   ¿·µ¬ °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS

¸¦µæÆü»ï¤È¤¦¤á¤­ ¤ÎÊѹ¹ÅÀ

Top / ¸¦µæÆü»ï¤È¤¦¤á¤­

[[TopPage]]
-[[M1¸¦µæ¥Ú¡¼¥¸>¸¦µæÆü»ï¤È¤Ü¤ä¤­]]
-[[B4¸¦µæ¥Ú¡¼¥¸>¸¦µæÆü»ï¤È¤Ä¤Ö¤ä¤­]]
-[[vista - ubuntu8.04(on VMware)´Ö¤Ç¤Î¶¦Í­¥Õ¥©¥ë¥ÀÀßÄê]]
-[[Vista¤Ç¼«Æ°¥·¥ã¥Ã¥È¥À¥¦¥ó]]

&br();
-[[¸¦µæÆü»ï>#report]]
--[[hyperlink»ÅÍͤޤȤá]]
--[[Æɤßʪ]]
--[[SLIM callback´ØÏ¢ ¥á¥â]]
--[[M2,M1´éʸ»ú½¸>#face]]
-[[¤¦¤á¤­>#word]]
-[[¸À¸ìÈÉ¥í¡¼¥«¥ë/CHR encoding:http://www.ueda.info.waseda.ac.jp/lmntal/local/pukiwiki.php?CHR%20encoding]]
*Contents[#s8e0a853]
#contents

*TODO[#s8e0a853]
-hyperlink´ØÏ¢¥³¡¼¥É¤Ë¤â¤Ã¤È¥³¥á¥ó¥È»Ä¤¹
//-¸¦µæ´Ä¶­¤ÎÀ°È÷
//--¿·¤·¤¤PC¡¢NIOLO2¡©
//--¥Ç¥å¥¢¥ë¥Ç¥£¥¹¥×¥ì¥¤¤Ë¤·¤¿¤¤

&aname(report);
*¸¦µæÆü»ï [#s8e0a853]

**2011-03-26 [#t6eada5a]
***KI journal ¤Î±ÑÌõʸ [#ya60ff78]
-¿½¤·ÌõÄøÅÙ¤Îtex¥Õ¥¡¥¤¥ë¤¬gouda¤Îhome/seiji/ki2011/¤Ë¤¢¤ê¤Þ¤¹

**2011-03-18 [#n7021431]
***JSAI2011¼¹É®»þ¤Î¼Â¸³·ë²Ì [#e52bffe0]
-&ref(./experiment_LATEST_slim428.zip);
--CHR,LMNtal¥×¥í¥°¥é¥àÆþ¤ê

**2011-02-19 [#q9971212]
***ÏÀʸ¤Î½ê° [#zed0f856]
-´ðËÜŪ¤Ë¸¦µæ¤·¤¿½ê°¤ò¡Ö½ê°¡×¤Ë½ñ¤¯
--ÏÀʸȯɽ»þ¤ËÊ̤ν갤ˤʤäƤë¾ì¹ç¤Ë¤Ï¡¢µÓÃí¤Ë½ñ¤¯¿Í¤â¤¤¤ë
 
**2011-02-09 [#n49f731d]
***½¤ÏÀ¤Î´Á»úÅý°ì [#sb7a0ec9]
-ʬ¤«¤ë
-»×¤¦
-¤Ç¤­¤ë
-¤È¤­
-¤Ä¤Ê¤¬¤ë
-¤ª¤è¤Ó
-Áȹ礻
-°ì¤Ä, 1¸Ä
-¤ß¤Ê¤¹
-¤³¤È
-¤â¤Î
-¹Ô¤¦
-Á´¤Æ
-


**2011-02-08 [#ze430023]
***paragraph¤Ç²þ¹Ô [#ta0591a1]
-¤µ¤»¤¿¤«¤Ã¤¿¤é
 \paragraph{¥¿¥¤¥È¥ë \\}
-¤Î¤è¤¦¤Ë{}¤ÎÃæ¤Ë\\¤ò½ñ¤±¤Ð¤è¤¤

**2011-02-05 [#n6e38065]
***eclipse¤Çtex [#z228e7c3]
-[[¤³¤³»²¾È>http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?TeXlipse#m60f5d27]]
***tex¤Î»È¤¤Êý [#s6e148aa]
-\documentstyle[report,12pt]{jsbook}¤Ï\documentclass[report,12pt]{jsbook}
-\pagestyle{heading}¤Ï\pagestyle{lineheadings}
--¤À¤È¤¦¤Þ¤¯¤¤¤Ã¤¿¤±¤É¡¢¤¢¤Ã¤Æ¤ó¤Î¤«¤Ê
-documentclass¤«¤ébegin{document}¤Þ¤Ç¤¬¥×¥ê¥¢¥ó¥Ö¥ëÉô

**2011-02-04 ȯɽ½ªÎ»¡ª¡ª [#h30ccea0]
***¤¤¤¿¤À¤¤¤¿¥³¥á¥ó¥È [#x97b8ebd]
-Ëì¤Ï¤¤¤é¤Ê¤¯¤Ê¤Ã¤Á¤ã¤Ã¤¿¤Î¡©(ÃæÅçÀèÀ¸)
--¤¤¤ê¤Þ¤¹¡£Ëì¤Ë¤Ï³¬Áؤòºî¤Ã¤Æ·×»»¤Î¶É½ê²½¤ò¹Ô¤¦Ìò³ä¤¬¤¢¤ë¤Î¤Ç¡¢¤½¤ì¤Ï¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤Ë¤Ï¤Ê¤¤µ¡Ç½¤Ç¤¹¡£
-¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤Ë¤è¤Ã¤ÆÈó¸úΨŪ¤Ê¥Þ¥Ã¥Á¥ó¥°¤¬¸º¤Ã¤¿¤Î¤Ï¤ï¤«¤Ã¤¿¡¢¤½¤ì¤Ï¥â¥Ç¥ë¤¬Ã±½ã¤Ëµ­½Ò¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤«¤é¤À¤è¤Í¡©(ÃæÅçÀèÀ¸)
--¤½¤ì¤¬°ì¤Ä¤ÎÍýͳ¤Ç¡¢¤â¤¦°ì¤Ä¤Ï¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤ÎÀܳ´Ø·¸¤òÍøÍѤ·¤¿¥Þ¥Ã¥Á¥ó¥°¤¬¤¢¤ê¤Þ¤¹¡£¡Ê¾Ü¤·¤á¤ËÀâÌÀ¡Ë¡£CHR¤ÎºÇŬ²½¤â¤³¤ì¤È»÷¤¿¤è¤¦¤Ê¹Í¤¨Êý¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£
-¤É¤¦¤¤¤¦¤È¤­¤ËËì¡¢¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤ò»È¤¤Ê¬¤±¤ë¤Î¡©(ÃæÅçÀèÀ¸)
--¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤Ë¤Ï¡¢ÀܳÀè¤ò·×»»ÎÌ£±¤Ç¼èÆÀ¤¹¤ëµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡¢¤³¤ì¤ÏÏÀÍýÊÑ¿ô¤Ë¤â̵¤¤µ¡Ç½¤Ç¤¹¡£º£¤Þ¤Ç¤Ï½¸¹ç¤ÏËì¤Ç°Ï¤Ã¤Æ¡¢Ãæ¤Ë¥¢¥È¥à¤òÆþ¤ì¤ë¤È¤«¤·¤Æ¤¤¤Þ¤·¤¿¤¬¡¢¤½¤Î¸Ä¿ô¤ò¿ô¤¨¤ë¤¿¤á¤Ë¤Ï¥ë¡¼¥ë¤ò·«¤êÊÖ¤·Å¬ÍѤ·¤Æ¿ô¤¨¤ë¤·¤«¤Ê¤«¤Ã¤¿¡£
---¤À¤«¤é¶É½ê²½¤ÏËì¡¢½¸¹ç¤ò°·¤¦¾ì¹ç¤Ë¤Ï¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤À¤Í¡£(¾åÅÄÀèÀ¸)
-¥Þ¥Ã¥Á¥ó¥°ºÇŬ²½¤Î¥¹¥é¥¤¥É¤ò¤â¤Ã¤È¤Á¤ã¤ó¤ÈÍÑ°Õ¤·¤Æ¤ª¤±¤Ð¤è¤«¤Ã¤¿

***ÍÑ°Õ¤·¤Æ¤¤¤¿²óÅú [#j8fea1ce]
-LMNtalÆâ¤À¤±¤Î¤³¤È¤Ç¤·¤ç¡©
-LMNtal°Ê³°¤ËÍøÍѤǤ­¤ë¿·µ¬À­¤Ï¡©
--ÏÀÍýÊÑ¿ô+Í×ÁÇ¿ô¤Î¼èÆÀ¤¬¤Ç¤­¤ëÅÀ¤Ç¡¢¿·µ¬À­¤¬¤¢¤ë¡Ê¤è¤Í¡©¡Ë
--(¤³¤ì¤¬°ìÈÖ¡©)´û¸¤ÎUnion-Find algorithm¤ò²þÎɤ·¤¿ÅÀ¡£ÆäËUF¤Ë¤â¤È¤â¤È̵¤¤Í×ÁǺï½ü½èÍý¤òÆþ¤ì¤¿¤ê¡¢½¸¹çÁ´ÂΤÎÍ×ÁÇ¿ô¤ò¾ï¤ËÊÝ»ý¤¹¤ë½èÍý(Í×ÁÇ¿ô¤ò·×»»ÎÌ£±¤Ç¼èÆÀ¤¹¤ë¤¿¤á)¤òÄɲ䷤Ƥ¤¤ë
--CHR¤Î¼ÂÀÓ¤ò»ý¤Á¾å¤²¡¢¤½¤ì¤ÈLMNtal¤Î´Ø·¸À­¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤ë¡¢LMNtal¤Ç¤â¼Â¥¢¥×¥êµ­½Ò¤Ç¤­¤Þ¤¹¤èŪ¤Ê
--Èó¸úΨŪ¥Þ¥Ã¥Á¥ó¥°¤ÎËɻߤÏLMNtal¤ò´Þ¤à¿½Å½¸¹ç½ñ´¹¤¨¸À¸ì¥â¥Ç¥ë¤Ë¤È¤Ã¤ÆÂç»ö

-¾¤Î¿½Å½¸¹ç½ñ¤­´¹¤¨·¿¸À¸ì¤Ã¤Æ²¿¡©
--¤¦¡¢¤­¤Ä¤¤¡£¥Þ¥Ã¥Á¥ó¥°¤Î»ÅÊý¤Þ¤Ç¾Ü¤·¤¯Ä´¤Ù¤¿¤Î¤ÏCHR¤À¤±¤Ê¤Î¤Ç¡¢Â¾¤Î¤âÏ令ë¤è¤¦¤Ë¤·¤Þ¤·¤ç¤¦¡£

-º£¤Þ¤Ç¤âCHR¤ò¥¨¥ó¥³¡¼¥É¤Ç¤­¤Æ¤¤¤¿¡¢¤Ã¤Æ¤¤¤¦¤Î¤Ï¤É¤¦¤ä¤Ã¤Æ¼¨¤·¤¿¤Î¡©
--¤Þ¤ºLMNtal¤ÏProlog, CHR¤Ë±Æ¶Á¤ò¼õ¤±¤Æ¤¤¤ë¸À¸ì¤Ç¡¢¹½Ê¸¤«¤é¸«¤ì¤Ð¥¨¥ó¥³¡¼¥É¤ËÌäÂê¤Ï̵¤¤¡£¸À¸ì»ÅÍÍ·èÄê¤ÎÃʳ¬¤Ç¡¢ÏÀÍý¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Î°ìÂа쥨¥ó¥³¡¼¥É¤Î¤·°×¤µ¤Ë¤â¸ÀµÚ¤·¤Æ¤¤¤ë¡£
--¤¿¤À¤·¡¢CHR¤Ë¤Ï3¼ïÎà¤Î¥ë¡¼¥ë¤¬¤¢¤ê¡¢¤³¤ÎÆâ2¤Ä¤ÏLMNtal¤Ç¤â¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢»Ä¤ê¤ÎPropagation rule¤ÏLMNtal¤Ë¤Ï̵¤¤³µÇ°¤Ç¤¢¤Ã¤¿¡£¤½¤³¤ÇuniqÀ©Ìó¤òÆþ¤ì¤¿¡£¤³¤ì¤ÇÁ´¤Æ¤Î¥ë¡¼¥ë¤â°ìÂаì¤Ç¥¨¥ó¥³¡¼¥É¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£
---¤¢¤¿¤ê¤¬¼¨¤·Êý¤«¤Ê¤¡¡©




**2011-02-02 [#w26e9a3f]
***¸½»þÅÀ¤Ç¤Î½èÍý·Ï¹Ô¿ô¡Ê¥¢¥Ð¥¦¥È¡Ë [#v8bde261]
-¾å2¤Ä¤Ï¤³¤ÎÆü¤Ëwc¤Ç·×¬¡¢¥³¥á¥ó¥È¥¢¥¦¥È¤âÆþ¤Ã¤Æ¤¤¤ë
--Java½èÍý·Ï¡§38460+19010+2784=60254
--SLIM¡§27708+29285=56993(¥Õ¥¡¥¤¥ë¤ÎƬ¤Î¥³¥á¥ó¥È¤Ï·×4600¹Ô¤¯¤é¤¤)
--LaViT¡§30000¤¯¤é¤¤
--UNYO¡§15000¤¯¤é¤¤

**2011-01-28 [#gb52e399]
***ʸ»ú¿ô¤Îº¹ [#v688fc95]
-³ÆÎãÂê¤Îʸ»ú¿ô¤ò¿ô¤¨¤Æ¤ß¤¿
|example|atom_cmp|cycle|leq|fibonacci| uf|uf_opt|*ram_simul|h
|lmn    |      26|   84|241|      157|357|   537|       766|
|lmn-mem|      31|  184|645|      549|627|  1112|      ̵Íý|
|lmn-hl |      18|   60|207|      348|301|   483|       653|
|chr    |      20|   51|144|      183|266|   345|       612|
-- mem¤¬¤¹¤´¤¤¤³¤È¤Ë
-- *¥ë¡¼¥ë¤Ïadd,sub,cjump0,cjumpN,halt¤Î¤ß
-- *Á´Éô¤Î¥ë¡¼¥ë¤ò´Þ¤á¤ë¤È½ç¤Ë2378, ̵Íý, 2266, 2069.

***¤Á¤Ê¤ß¤Ë [#yb981772]
-(¥Ï¥¤¥Ñ¡¼¤Ç¤Ê¤¤)¥°¥é¥Õ <=> °ìÈÌ¥°¥é¥Õ
-¥Ï¥¤¥Ñ¡¼¥°¥é¥Õ <=> Ķ¥°¥é¥Õ
--¤È¸Æ¤Ö¤é¤·¤¤

**2011-01-27 [#kb0dde60]
-½¤ÏÀ°ìöÄó½Ð
-JSAI2011¤Ë¿½¹þ¤ß¡¢È¯É½¤Ï¤¿¤Ö¤óÌܹõ¥Ñ¥ï¡¼¤Ë´üÂÔ¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤½¤¦


**2011-01-26 [#h2312eee]
***´Ú¹ñ¤Ë·àŪ¾¡Íø [#pedae3cc]
***tex¤Îɽ¤ÇÇËÀþ¤ò»È¤¨¤ë¤è¤¦¤Ë [#ufb10270]
-&ref(arydshln.sty);
 cc|ccc:rrr| ¤È¤«¤½¤ó¤Ê´¶¤¸¤Ç":"¤¤¤ì¤¿¤È¤³¤¬ÇËÀþ¤Ë

**2011-01-25 [#lf757ba7]
***unaryÍÑÈæ³Ó±é»»»Ò"\==" [#n1de5431]
-¤òÄɲ䷤Ƥߤ¿
 a(X), b(Y) :- X \== Y | .
 ----------------------------
 --guard:L118:
   spec           [3, 7]
   derefatom   [3, 1, 0]
   isunary        [3]
   derefatom   [4, 2, 0]
   isunary        [4]
   getfunc     [5, 3]
   getfunc     [6, 4]
   neqfunc        [5, 6]
   jump           [L103, [0], [1, 2, 3, 4], []]

**2011-01-24 [#tc9f4e02]
***ÏÀʸ¤ÇÃæ´ÖÌ¿ÎáÎó¤Î°ìÍ÷¤ò½ñ¤­¤¿¤¤¤È¤­ ¡Ê½¤ÀµÈÇ¡Ë [#p26c1af9]
-Éý¤¬È¾Ê¬¤ËÀßÄꤵ¤ì¤Æ¤¤¤¿¤Î¤Çľ¤·¤Æ¤ß¤¿¡¢Â¾¤Ë¤â¿§¡¹½¤Àµ
-thesis.tex¤ËÄɲ乤ëÊý¤Í
 \newenvironment{instruction}[2]{%
 \vskip-0.5\baselineskip
 \vbox{\hbox to 1\textwidth{\hrulefill}}
 \nobreak
 \vskip-0.7\baselineskip\nobreak
 \begin{description}
 \item[\texttt{\hspace{10pt}#1 \rlap{[\textit{#2}]}}]\hfill\break
 \rightskip0zw}%
 {\end{description}\nobreak\vskip-1.0\baselineskip\nobreak
 \hbox to 1\textwidth{\hrulefill}}

***ÏÀʸ¤ÇÃæ´ÖÌ¿ÎáÎó¤Î°ìÍ÷¤ò½ñ¤­¤¿¤¤¤È¤­ [#l678d191]
-jssst2007¤«¤é·¡¤êµ¯¤³¤·¤Æ¤­¤¿
- ¥á¥¤¥ó¤È¤Ê¤ë¥Õ¥¡¥¤¥ë(thesis.tex¤È¤«)¤Î\begin{document}¤è¤ê¤âÁ°¤Ë
 \newenvironment{instruction}[2]{%
 \vskip-0.2\baselineskip
 % \vskip-0.0\baselineskip
 \vbox{\hbox to0.48\textwidth{\hrulefill}}\nobreak
 \vskip-0.3\baselineskip\nobreak
 \begin{description}
 \item[\texttt{\hspace{-3pt}#1 \rlap{[\textit{#2}]}}]\hfill\break
 \rightskip0zw}%
 % {\end{description}\nobreak\vskip-0.7\baselineskip\nobreak
 {\end{description}\nobreak\vskip-0.5\baselineskip\nobreak
 \hbox to0.48\textwidth{\hrulefill}}
-¤òÆþ¤ì¤ë(¥³¥á¥ó¥È¥¢¥¦¥È¤È¤«¤¤¤é¤Ê¤½¤¦¤Ê¤Î¤â¤½¤Î¤Þ¤Þ¥³¥Ô¥Ú¤·¤Æ¤ë)
-Ãæ´ÖÌ¿Îá¤ò½ñ¤­¤¿¤¤¥Ú¡¼¥¸¤Ç
 \begin{instruction}{spec}{formals, locals}
 % Ì¿ÎáÎó¤Î¼Â¹ÔÃæ¤Ï¥¢¥È¥à¤äËì¤ÏÊÑ¿ôÈÖ¹æ¤Ç¥¢¥¯¥»¥¹¤¹¤ë¤¬¡¤
 % ËÜÌ¿Îá¤Ï¡¤
 ¡ÎÀ©¸æÌ¿Îá¡Ï
 ²¾°ú¿ô¤Î¿ô (ËÜÌ¿ÎáÎó¤ËÅϤµ¤ì¤ë¥¢¥È¥à¤äËì¤Î¿ô) ¤ò \textit{formals}¡¤ 
 ËÜÌ¿ÎáÎó¤ÇÊÝ»ý¤¹¤Ù¤­¥¢¥È¥à¤äËì¤ÎÁí¿ô¤ò \textit{locals} ¤«¤é¼õ¤±¼è¤Ã¤Æ¡¤
 ¸å¼Ô¤òÊÝ»ý¤Ç¤­¤ëÂ礭¤µ¤ÎÊÑ¿ô¥Ù¥¯¥¿¤ò³ÎÊݤ¹¤ë¡¥
 \end{instruction}
-¤Ê´¶¤¸¤Çµ­½Ò¤¹¤ì¤Ð¤ª£ë

**2011-01-20 [#b48f85e0]
*** hyperlink : ground¥Á¥§¥Ã¥¯¤Ç¤Î¥Ð¥° [#p0a5b31e]
- ºòÆüľ¤·¤¿¤È»×¤Ã¤¿¤±¤É¡¢Ä¾¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿
--¸¶°ø¤ÏÂçÂÎÇÄ°®¤·¤¿¤±¤É¡¢¤É¤¦Ä¾¤¹¤«¤Ï¤·¤Ã¤«¤ê¹Í¤¨¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤«¤â
---½¤ÏÀ¸å¡©

**2011-01-19¤½¤Î2 [#t6037b49]
-memo for gocho
-before
 /* ground¤Ï¤Ä¤Ê¤¬¤Ã¤¿¥°¥é¥Õ¤Ê¤Î¤Ç1¤Ä¤Îº¬¤«¤é¤À¤±¤¿¤É¤ì¤Ð¤è¤¤ */
 {
   LinkObj l = (LinkObj)vec_get(srcvec, 0);
   vec_push(unsearched_link_stack, (LmnWord)LinkObj_make(l->ap, l->pos));
 }
-after
 /* ground¤Ï¤Ä¤Ê¤¬¤Ã¤¿¥°¥é¥Õ¤Ê¤Î¤Ç1¤Ä¤Îº¬¤«¤é¤À¤±¤¿¤É¤ì¤Ð¤è¤¤ */
 {
   LinkObj l = (LinkObj)vec_get(srcvec, 0);
   if (LMN_ATTR_IS_EX(l->pos)) {
     hashset_add(found_ground_symbol_atoms, l->ap);
     ++count_of_ground_atoms;
   }
   else vec_push(unsearched_link_stack, (LmnWord)LinkObj_make(l->ap, l->pos));
 }

**2011-01-19 [#vadd00c3]
***¿·»ÅÍͤÎ[[¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯»ÅÍͤޤȤá>http://www.ueda.info.waseda.ac.jp/lmntal/local/pukiwiki.php?%A5%CF%A5%A4%A5%D1%A1%BC%A5%EA%A5%F3%A5%AF%BB%C5%CD%CD%A4%DE%A4%C8%A4%E1]]¡Ê¸À¸ìÈÉ¥í¡¼¥«¥ë¡Ë [#k43b9e81]
-¤Þ¤È¤á¤Æ¤ß¤¿
***Java½èÍý·Ï¸ø³«¤Î¼ê³¤­ [#t4cd1593]
-[[http://www.ueda.info.waseda.ac.jp/lmntal/local/pukiwiki.php?ant]]

**2011-01-16 [#dfaa43f8]
***hyperlink : commit! [#se12695f]
-¤·¤Æ¤·¤Þ¤Ã¤¿¡£Ã×̿Ū¤Ê¥Ð¥°¤¬¤Ê¤¤¤³¤È¤ò¤ß¤ó¤Ê¤Çµ§¤í¤¦¡£
-Äɲä·¤¿¤â¤Î
--hyperlink
--hyperlink¤òÍøÍѤ·¤¿¥Þ¥Ã¥Á¥ó¥°ºÇŬ²½µ¡Ç½¡ÊfindproccxtÌ¿Îá¤Û¤«¡Ë
--callback´Ø¿ôgettime¤È¡¢SLIM¥â¥¸¥å¡¼¥ëtime.lmn

***slim419¤Çedfs_t*.il¤¬segmentation fault [#j11f67de]
-%%gocho¤¬Ä¾¤·¤Æ¤ë¥Ð¥°¤Ã¤Æ¤³¤ì¤«¤Ê¡©%%
--¸µ¡¹--delta-mem¤ÇÆ°¤«¤Ê¤¤ÎãÂê¤À¤Ã¤¿

***½¤ÏÀ¥¿¥¤¥È¥ë [#u3366a25]
-¿ì¤Ã¤¿Àª¤¤¤Ç¤«¤Ã¤³¤è¤µ¤²¤Ê¤Î¹Í¤¨¤Æ¤ß¤ë
--%%ÊÂ¹Ô¥×¥í¥°¥é¥ß¥ó¥°¸À¸ìLMNtal¤Ë¤ª¤±¤ëLMNtal¥°¥é¥Õ¤Î¥Ï¥¤¥Ñ¡¼¥°¥é¥Õ¤Ø¤Î³ÈÄ¥%%
--LMNtalÏ¢¸Æ¤·¤Æ¤ë´¶¤¸¤Ê¤Î¤ÇµÑ²¼

**2011-01-15 [#ta1b22e7]
***[[¤¹¤Ã¤­¤êCHR>http://www.ueda.info.waseda.ac.jp/~seiji/trychr]] [#j7e43cf4]
-¥ê¥Ë¥å¡¼¥¢¥ë¡£²¿µ¤¤Ë¥µ¥¤¥È̾¤Ç¸¡º÷¤¹¤ë¤È¾å°Ì¤Ë¡£

**2011-01-15 [#s1081fce]
***hyperlink : ¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤ÎID¤ò¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ë¤Ê¿ôÃÍ¤Ë [#m05e86bd]
- ''hyperlink¤ËÃͤòÂåÆþ¤¹¤ëÏäǤϤʤ¤''
- hyperlinkÌÚ¤«¤éhyperlink¥ª¥Ö¥¸¥§¥¯¥È¤òºï½ü¤¹¤ëºÝ¡¢ÌÚ¤ÎÃæ¤Çºï½üÂоݤΥª¥Ö¥¸¥§¥¯¥È¤òÍդ˸þ¤«¤Ã¤Æ¥¹¥ï¥Ã¥×¤·¤Æ¤¤¤­¡¢ÍÕ¤ËÅþ㤷¤¿»þÅÀ¤Çºï½ü¤¹¤ë¤è¤¦¤ÊºÇŬ²½(»Ò¤ò¤¿¤¯¤µ¤ó»ý¤Ã¤¿¤Þ¤Þºï½ü¤¹¤ë¤È¿§¡¹½èÍý¤¬¤«¤«¤ë)¤òÆþ¤ì¤¿¤¿¤á¡¢½¸¹ç¤òÂåɽ¤¹¤ë(root¤Î)ID¤¬¸ÇÄꤵ¤ì¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿
- ¤³¤ì¤À¤ÈuniqÀ©Ìó¤ÇÍúÎò¤ò´ÉÍý¤¹¤ëºÝ¤Ë¶ì¤·¤¤
-- ¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ë¤ÊÈÖ¹æ¤ò¤Õ¤ê¡¢uniq¤ÎÍúÎò¤ª¤è¤Óɸ½à½ÐÎÏ»þ¤Ë¤Ï¤½¤ì¤òID¤È¤¹¤ë
-- hyperlink¤Îuniq¤Ø¤ÎÂбþ¡Ü½ÐÎÏ»þ¤ÎID¤Îû½Ì²½¤¬²Äǽ¤Ë

-½ÐÎÏbefore

 tmp.
 tmp :- new($x) | a($x), b($x).
 *--->
 a(!1ab5038). b(!1ab5068). @5. 
 == HyperLink =============================================================
   [hl_ID]  [parent] [linked with] [num] [direct children ( inside info )]
   1ab5038      root             a     2  1ab5068.
   1ab5068         1             b     2  
 ================================================ 1 group,  2 elements ==== 

-½ÐÎÏafter

 tmp.
 tmp :- new($x) | a($x), b($x).
 *--->
 a(!1). b(!2). @5.
 == HyperLink =============================================================
   [hl_ID]  [parent] [linked with] [num] [direct children ( inside info )]
         1      root             a     2  2.
         2         1             b     2
 ================================================ 1 group,  2 elements ====

- --show-hl¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤Ê¤¤Ä̾ï¤Î½ÐÎÏ
 a(!1). b(!1). @5.

**2011-01-14 [#h20ab9ee]
***hyperlink : ¥³¥ß¥Ã¥Èºî¶ÈÃæ [#jf029420]
- callback´Ø¿ô¤ò¥â¥¸¥å¡¼¥ë¤Ç¸Æ¤Ó½Ð¤»¤ëtime.lmn¤âÄɲÃͽÄê


//**2011-01-11 [#c23827cd]
//*** ºÆ¸½À­¤Î¤¢¤ëµ¿»÷Íð¿ôinteger_rand_lcg¡Ê¤Ègettime¡Ë [#ed001670]
//- Àþ·Á¹çƱˡ¤Ë¤è¤Ã¤Æµ¿»÷Íð¿ô¤òÀ¸À®¤¹¤ëcallback´Ø¿ô¤ò½ñ¤¤¤Æ¤ß¤¿
// i(20). list = [].
// i(I), list = H :- I>0, I1=I-1 | i(I1), list = [integer.rnd_lcg | H]. 
// *--> list([8,4,5,2,0,6,7,9,1,3,8,4,5,2,0,6,7,9,1,3]).
//-- °ìÅٴؿô¤¬¸Æ¤Ð¤ì¤ë¤´¤È¤Ë¡¢0 ¤«¤é 9 ¤Î´Ö¤Ç¤ÎÍð¿ô¤ò°ì¤ÄÊÖ¤¹
//-- ¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò¸«¤ì¤Ðʬ¤«¤ë¤¬¡¢¸·Ì©¤ÊÀþ·Á¹çƱˡ¤Ç¤Ï¤Ê¤¤¡¢¤±¤É½½Ê¬¤Ç¤·¤ç¤¦//-integer_rand_lcg¤Ègettime¤òmodule¤Ç¤â»È¤¨¤ë¤è¤¦¤Ë¤·¤¿
//--hyperlink¤Î¥³¥ß¥Ã¥È»þ¤Ë°ì½ï¤Ë¥³¥ß¥Ã¥È¤·¤Á¤ã¤ª¤¦¤«¤Ê

**2011-01-10 ¤½¤Î2 [#p531d49c]
*** hyperlink : ¿·¡¹»ÅÍͤǤμ¸³ ram_simul_many [#i9dab134]

|N             |5k  |10k |20k |40k  |80k   |O  |h
|slim int      |1.59|3.16|6.33|12.65| 35.71|   |
|slim hlink old|0.15|0.28|0.55| 1.10|IDover|   |
|slim hlink new|0.18|0.36|0.72| 1.43|  2.83|   |
|chr  int opt  |0.21|0.51|1.26| 3.61|  8.51|   |

*** hyperlink : ¿·¡¹»ÅÍͤǤμ¸³ fibonacci_topdown [#n7f4e368]
|N             |  5k|  8k| 10k| 16k| 20k| 32k|   64k|128k|O|h
|slim hlink old|0.08|0.14|0.18|0.28|0.37|0.56|IDover|    |N|
|slim hlink new|0.08|0.13|0.16|0.26|0.32|0.51|  1.02|2.06|N|
|chr  int opt  |0.03|0.04|0.08|0.10|0.17|0.20|  0.46|1.11|N|

//***hyperlink¡§¿·¡¹»ÅÍͤǤμ¸³ cycle_backedge3 [#b8d8af39]
//-3ĺÅÀ¤«¤é¤Ê¤ëÊÄÏ©¤òõº÷¤¹¤ë(propagation, uniq̵¤·)
//- mem all¤Ï¥°¥é¥ÕÀ¸À®¤Î»þ´Ö¤â´Þ¤á¤¿Áí¼Â¹Ô»þ´Ö
// edge(X, Y), edge(Y, Z), edge(Z, X) <=> cycle(X, Y, Z).
//|N             |100   ||500  |1000  |2k   |O |h
//|slim int      |243.43||     |      |     |  |
//|slim mem      |  0.02|| 0.34|1.43  |     |  |
//|(    mem all) |  0.22||24.65|197.42|     |  |
//|slim hlink old|  0.04|| 0.73|  2.63| 5.90|  |
//|slim hlink new|  0.07|| 1.39|  5.60|13.95|  |
//|chr  int opt  |      || 1.25|  2.54| 5.05|  |

***hyperlink¡§¿·¡¹»ÅÍͤǤμ¸³ atomcmp_x3 [#xc17dd11]
- hlink¤ÏÁ´¤Æ--hl-opt¤Ç¬¤ë¤³¤È¤Ë¤¹¤ë(./hltest_new/)
- lmntal -O3 --slimcode --hl-opt atomcmp.lmn | slim --hl -
|N             |8k*3 |16k*3 |32k*3 |64k*3 |128k*3|256k*3|O  |h
|slim int      |38.94|156.27|631.03|---   |---   |---   |N^2|
|slim mem      | 0.03|  0.06|  0.12|  0.24|  0.48|  0.95|N  |
|slim hlink old| 0.02|  0.03|  0.06|  0.12|IDover|      |N  |
|slim hlink new| 0.06|  0.11|  0.22|  0.44|  0.88|  1.79|N  |
|chr  opt      | 0.11|  0.21|  0.47|  0.96|  1.84|  3.67|N  |

**2011-01-10 [#n0abee8a]
*** hyperlink : Ãæ´ÖÌ¿ÎáÎó¤ÎʤÓÂؤ¨ [#j4755ff3]
- ¥³¥ó¥Ñ¥¤¥é¤ò¼ã´³Êѹ¹
-- newhlink, makehlink¤Èuniq¤ÎʤÓÂؤ¨¤¬¤¦¤Þ¤¯¤¤¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤ò½¤Àµ¡¢¥³¥ß¥Ã¥È
-- ¤Ä¤¤¤Ç¤Ë¥³¡¼¥É¤ÎÀ°Íý¤â¤Á¤ç¤Ã¤È¤ä¤Ã¤¿

**2011-01-08 [#a4023296]
***·×»»Î̤¬°­¤¤·ï [#nb8eb79a]
-¸¶°ø¤¬ÇÄ°®¤Ç¤­¤¿
--¤Ê¤¼ËìÆâ¤Î¡ª¥¢¥È¥à¤òÁ´¤Æ¤µ¤é¤¦¤è¤¦¤Ë¤·¤Æ¤¤¤¿¤Î¤«¡¢Íý²ò¤Ë¶ì¤·¤à
*** --enable-gprof(¤È--disable-tcmalloc)¤Çallocs/frees¤Î¿ô¤¬¹ç¤ï¤Ê¤¤ [#x2936051]
 lmntal --slimcode -e "a." | valgrind src/slim -
-valgrind¤Ç¸«¤ë¤Èfrees¤¬1­¤ê¤Ê¤¤
--²¶¤Î´Ä¶­¤À¤±¤«¤Ê¡©
---2¤Ä¤Î¥Ç¥Ð¥Ã¥¬¤òƱ»þ¤Ë»È¤¦²¶¤¬°­¤¤ 2011-01-14

**2011-01-07 [#s904e67a]
***fibonacci¤Èram¤ò¬Äê [#ve536dc2]
-¥ª¡¼¥À¡¼¤¬°­¤¤...
-- --p3¤Ç¥Á¥§¥Ã¥¯¡¢¥ë¡¼¥ë¤ÎŬÍÑ/»î¹Ô/¥Ð¥Ã¥¯¥È¥é¥Ã¥¯²ó¿ô¤Ïµì¼ÂÁõ¤è¤ê°­¤¤¥ë¡¼¥ë¤Ï̵¤¤
--ÆâÉô¼ÂÁõ¤ÎÌäÂê¡¢¸«Ä¾¤·Ãæ
-fibonacci_topdown(unify)
|N             |  4k|  8k| 16k|  32k||O  |h
|slim hlink new|0.13|0.41|1.90|14.60||?  |
-ram_simul
|N             |  5k| 10k|  20k||O  |h
|slim hlink new|0.66|3.84|22.60||?  |

**2011-01-04 [#k102ad93]
***hyperlink : ½ê°Ëì¤Ø¤Î¥Ý¥¤¥ó¥¿ [#iab55978]
-»ý¤¿¤»¤Æ¤ª¤±¤Ð¡¢hyperlink¤«¤é¤Îfindatom¤ò¤â¤¦¾¯¤·¸úΨ²½¤Ç¤­¤ëµ¤¤¬¤¹¤ë
***hyperlink : ¥æ¡¼¥¶ID¤ÎÄɲø¡Æ¤ [#oc8204c8]
-µ¡Ç½¤È¤·¤Æ¤ÏÍÑ°Õ¤·¤Æ¤ª¤­¤¿¤¤¡£¤¬¥Ð¥°¤¬¼è¤ì¤Æ¤«¤é...
-- CHR¤Ç¤ÏƱ¤¸Ãͤò«Çû¤µ¤ì¤¿ÏÀÍýÊÑ¿ô¤¬À¸À®¤µ¤ì¤¿¾ì¹ç¤Ï¡¢À¸À®¤µ¤ì¤¿»þÅÀ¤ÇƱ¤¸½¸¹ç¤Ë°¤¹¤ë

 X is 1.
 hoge <=> Y is 1, v(Y).
-- ¡Êɬ¿Ü¤Ç¤Ï¤Ê¤¤¤¬¡Ëhyperlink¤Ë¤â¤³¤¦¤¤¤¦µ¡Ç½¤¬¤Ê¤¤¤È¡¢¥×¥í¥°¥é¥à¤¬ÈÑ»¨¤Ë¤Ê¤ë
--- Èó¸úΨ¤Ê¥Þ¥Ã¥Á¥ó¥°¤òÀ¸¤Þ¤Ê¤¤¤è¤¦¤Ë½ñ¤¯¤¿¤á¤Ë¡¢¿§¡¹¤È¶ìÏ«¤·¤½¤¦

 ¥¤¥á¡¼¥¸¡§
 hoge :- make($x, 123) | h($x). 
 *---> h(!123). 
 (ID123¤ò»ý¤Ä¾¤Îhyperlink¤Î½¸¹ç¤ÈÊ»¹ç¤µ¤ì¤¿¾õÂÖ¤ÇÀ¸À®¤µ¤ì¤ë)


**2010-12-28 [#vdf04a81]
***hyperlink : ¥Ï¥Ã¥·¥åɽ¤Ë¤è¤ë´ÉÍý¤òÇÑ»ß [#l3e25c5a]
-¿·¤·¤¤Â°À­LMN_HL_ATTR¤Î¥Ð¥°¤¬¤«¤Ê¤ê¼è¤ì¤Æ¤­¤¿µ¤¤¬¤¹¤ë¤Î¤Ç¡¢¥Ï¥Ã¥·¥åɽ¤Çatom pointer => hyperlink object¤Î»²¾È´Ø·¸¤ò´ÉÍý¤·¤Æ¤¤¤¿¤Î¤òÇÑ»ß
-"!"¥¢¥È¥à¤ÎÂè2°ú¿ô¤Ëhyperlink object¤Ø¤Î¥Ý¥¤¥ó¥¿¤òľÀÜËä¤á¹þ¤à
--ŬÅö¤Ë¬¤Ã¤Æ¤ß¤¿

|N                     |8k*3 |16k*3 |32k*3 |64k*3 |128k*3|256k*3|O  |h
|slim hlink new(ÇÑ»ßÁ°)| 0.06|  0.12|  0.27|  0.57|  1.16|  2.35|N  |
|slim hlink new(Çѻ߸å)| 0.04|  0.08|  0.17|  0.36|  0.74|  1.50|N  |

**2010-12-22 [#rd3e5b67]
***ºÇû"·ÐÏ©"ÌäÂê [#qde1b7c2]
-ºÇûµ÷Î¥¤òµá¤á¤ë¥×¥í¥°¥é¥à¤Ï¿§¡¹¤¢¤ë¤±¤É¡¢uniq»È¤¨¤Ð¤¿¤¤¤¬¤¤1,2¥ë¡¼¥ë¤Ç½ñ¤±¤ë
-¤¿¤ÀºÇû"·ÐÏ©"¤È¤Ê¤ë¤È2¹Ô¤Ç½ñ¤±¤ë¤Î¤«¤Á¤ç¤Ã¤È¼«¿®Ìµ¤«¤Ã¤¿¤±¤É¡¢¤Ê¤ó¤È¤«½ñ¤±¤¿
--&ref(./shortest.lmn,shortest.lmn);

**2010-12-21 [#j4fad4c0]
***hyperlink¡§¿·»ÅÍͤǤμ¸³ cycle_backedge5 [#b8d8af39]
-3ĺÅÀ¤«¤é¤Ê¤ëÊÄÏ©¤òõº÷¤¹¤ë(propagation, uniq̵¤·)
 edge(X, Y), edge(Y, Z), edge(Z, X) <=> cycle(X, Y, Z).
|N             |100   ||500  |1000  |2k  |O  |h
|slim int      |243.43||     |      |    |   |
|slim mem      |  0.02|| 0.34|1.43  |    |   |
|(    mem all) |  0.22||24.65|197.42|    |   |
|slim hlink old|  0.04|| 0.73|  2.63| 5.90|  |
|slim hlink new|  0.07|| 1.50|  6.15|13.95|  |
|chr  int opt  |      || 1.25|  2.54| 5.05|  |
--·×¬ÅÓÃæ

**2010-12-18 [#ice96280]
***hyperlink¡§¿·»ÅÍͤǤμ¸³ atomcmp_x3 [#xc17dd11]
- hlink¤ÏÁ´¤Æ--hl-opt¤Ç¬¤ë¤³¤È¤Ë¤¹¤ë(./hltest_new/)
- lmntal -O3 --slimcode --hl-opt atomcmp.lmn | slim --hl -
|N             |8k*3 |16k*3 |32k*3 |64k*3 |128k*3|256k*3|O  |h
|slim int      |38.94|156.27|631.03|---   |---   |---   |N^2|
|slim mem      | 0.03|  0.06|  0.12|  0.24|  0.48|  0.95|N  |
|slim hlink old| 0.02|  0.03|  0.06|  0.12|IDover|IDover|N  |
|slim hlink new| 0.06|  0.12|  0.27|  0.57|  1.16|  2.35|N  |
|chr  opt      | 0.11|  0.21|  0.47|  0.96|  1.84|  3.67|N  |
-- hyperlink ¤ÎID¤Î¾å¸Â¤¬Ìµ¤¯¤Ê¤Ã¤¿¤Î¤¬Â礭¤¤

***¥«¥é¡¼Â缭ŵ [#r211acbd]
-[[¸¶¿§>http://www.colordic.org/]]
-[[¥Ñ¥¹¥Æ¥ë>http://www.colordic.org/p/]]

**2010-12-14 [#i31cddb6]
***ubuntu9.10¤Ëopenoffice3.2 [#kb30fc40]
-[[¤³¤³>http://user.services.openoffice.org/ja/forum/viewtopic.php?f=6&t=586]]
-¥¨¥é¡¼
 ¥¹¥Æ¡¼¥¿¥¹¥Ç¡¼¥¿¥Ù¡¼¥¹¥¨¥ê¥¢¤¬ÊÌ¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤Þ¤¹
--synaptic¤¬³«¤¤¤Æ¤¤¤ë¤È½Ð¤ë

**2010-12-13 [#n5bf4b7b]
*** ²òÊü˺¤ì¡© [#fff188bd]
-¸ø³«ÈÇslim¤Ç°Ê²¼¤Î¤è¤¦¤Ë¥Ç¡¼¥¿·¿¤À¤±¤Îground·¿Èæ³Ó¤ò¤¹¤ë¤È¥á¥â¥ê¥ê¡¼¥¯¤¬¤¢¤ë¤È¸À¤ï¤ì¤ë¡¢²¶¤Î´Ä¶­¤Î¤»¤¤¡©
 a(1), a(1). a(X), a(Y) :- X = Y | ok.
--eqground/neqground¤Ç¤Îsrcvec, dstvec¤Î²òÊü¤¬rev400°Ê¹ß̵¤¯¤Ê¤Ã¤Æ¤ë
--Éü³è¤µ¤»¤ë¤È¤Á¤ã¤ó¤È²òÊü¤µ¤ì¤Æ¤ë¤ß¤¿¤¤¤À¤±¤É¡¢Â¾¤Î½èÍý¤ËºîÍѤ·¤Æ¤Ê¤¤¤À¤í¤¦¤«
---2010-12-14 ½¤ÀµÁ°/½¤Àµ¸å¤Çº¹°Û¤¬Ìµ¤«¤Ã¤¿¡Êbenchmarkset¤ÎÎãÂê¤ËÂФ·¤Æ--nd, --mem-enc¼Â¹Ô¤Ç¾õÂÖ¿ô¤òÈæ³Ó¡Ë¤Î¤Ç¥³¥ß¥Ã¥È

**2010-12-12 [#i2967981]
*** hyperlink Èæ³Ó·Ïmemo [#g60c1cb8]
-isground
-eq/neqground
-eq/neqfunc
-samefunc
--lmn_eq_func
*** memo[#h7942c2c]
-wine : 282MB
-wine-dev : 18MB
-QuickTimeInstaller.exe : 36.4
-iTunesSetup.exe : 78.1

**2010-12-10 [#c73da7ff]
***hyperlink : ¿·»ÅÍͤǤμ¹Իþ´Ö [#g287c412]
-¥¢¥È¥àÀ¸À®&ºï½ü
--10000¸Ä¤Îatom(hyperlink)¤òN²óÀ¸À®->ºï½ü
--¤É¤Á¤é¤âtime optimized slim
|N          | 100| 200|  400|  800|h
|symbol atom|1.91|3.72| 7.40|14.75|
|hyperlink  |3.78|7.65|15.31|31.87|
-new_and_delete.lmn
 start(10000, 100).
 init   @@ start(M, I) :- int(M) | s(M, I, M).
 return @@ s(0, I, M) :- I > 0, I1 = I-1, int(M) | s(M, I1, M).
 /* atom */
 new    @@ s(I, J, M) :- I > 0, I1 = I-1 | s(I1, J, M), a(b).
 delete @@ a($a) :- unary($a) | .
 /* hyperlink */
 //new    @@ s(I, J, M) :- I > 0, I1 = I-1, new($a) | s(I1, J, M), a($a).
 //delete @@ a($a) :- hlink($a) | .

-hlinkÀ©Ìó
--10000*N²ó¤Îhlink·¿¸¡ºº¤ò¹Ô¤¦
|N            | 100| 200| 400|  800|h
|old hyperlink|1.17|2.36|4.74| 9.52|
|new hyperlink|1.42|2.82|5.62|11.42|
--µì»ÅÍÍ¡§hlink·¿¸¡ºº¤Ï¥Õ¥¡¥ó¥¯¥¿ID¤ÎÈæ³Ó
--¿·»ÅÍÍ¡§hyperlink°À­¤òÍøÍѤ·¤Æ·¿¸¡ºº¡¢¿·»ÅÍͤè¤ê³Ú¤À¤¬¥ª¥Ö¥¸¥§¥¯¥È¤Îºï½ü->À¸À®¤¬Ëè²ó¹Ô¤ï¤ì¤ë¤¿¤á¤Ëµì»ÅÍͤè¤êÃÙ¤¤¤Î¤«¤â
-ishlink.lmn
 i(10000, 800).
 init   @@ i(I, J) :- uniq, int(I), new($x) | i(I, J, I), a($x).
 return @@ i(0, J, M) :- J > 0, J1 = J-1, int(M) | i(M, J1, M).
 hlink  @@ i(I, J, M), a($x) :- I > 0, I1 = I-1, hlink($x) | i(I1, J, M), a($x).


**2010-12-07 [#z99bc25e]
***¥ê¥â¡¼¥ÈÀßÄê¥á¥â [#i12ffcaa]
-¥³¥ó¥Ô¥å¡¼¥¿¡§localhost:13389
-¥×¥í¥È¥³¥ë¡§RDPv5
-¥æ¡¼¥¶Ì¾¤È¥Ñ¥¹¥ï¡¼¥É
-(¥Þ¥·¥ó¥¢¥É¥ì¥¹¡§00:22:15:7d:86:dc)

**2010-12-06 [#a0d82910]
***LMN_ATTR_IS_DATA_WITHOUT_EX [#m93aef1f]
-ex¤Ïextended¡£extra, expanded¤Ç¤â¤Þ¤¡°ÕÌ£¤ÏÄ̤¸¤ë¡©

**2010-12-03 [#kfa39533]
***¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯Â°À­ [#l2921ed1]
-¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤Ï¥Õ¥¡¥ó¥¯¥¿!/1¤Î¥¢¥È¥à
--¤À¤±¤É°À­¤È¤·¤Æ¤Ï¥Ç¡¼¥¿¥¢¥È¥à¤Î°ì¼ï
--¤À¤±¤É¥·¥ó¥Ü¥ë¥¢¥È¥à¤È¤·¤Æ¡¢Ëì¤Ø¤ÎÅÐÏ¿¡¢ºï½üÅù¡¹¤ò¹Ô¤¦
---callback atom¤ÈƱ¤¸¤è¤¦¤Ê
---¥á¥ê¥Ã¥È¤È¤·¤Æ¤Ï·¿¸¡ºº¤òºÇŬ²½¤Ç¤­¤ë
---¥Ç¥á¥ê¥Ã¥È¤È¤·¤Æ¤Ï¼ÂÁõ¤¬ÌÌÅÝ

**2010-11-26 [#ke0483e5]
***hyperlink : ¥¢¥È¥à¥Ý¥¤¥ó¥¿¤òID¤È¤¹¤ë [#m5f5ba11]
-¤³¤ì¤Þ¤Ç¤Î¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¥¢¥È¥à
--¥Õ¥¡¥ó¥¯¥¿¡§!1, !2, ...(¼Â¹ÔÃæ¤Ë¿·¤¿¤Ê¥Õ¥¡¥ó¥¯¥¿¤òÀ¸À®¤·¤Æ¤¤¤¿)
--´ÉÍý(hlink ID)¡§ 1,  2, ...
--- !1 <-> 1, !2 <-> 2, ... 
--Ä̾ï¤Î¡Ê¥·¥ó¥Ü¥ë¡Ë¥¢¥È¥à
-¿·¤·¤¤¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¥¢¥È¥à
--¥Õ¥¡¥ó¥¯¥¿¡§Í½Ìó¸ì'!'¤ÇÅý°ì (¿·¤¿¤Ê¥Õ¥¡¥ó¥¯¥¿À¸À®¤Ï̵¤¤)
--´ÉÍý(hlink ID)¡§'!'¥¢¥È¥à¤Î¥Ý¥¤¥ó¥¿
--- atom pointer <-> hlink object, ... 
--¥Ç¡¼¥¿¥¢¥È¥à°·¤¤¡Êhyperlink°À­¤òÄɲá¢hlink¤Ç¤¢¤ë/¤Ê¤¤¤ÎȽÄ꤬³Ú¤Ë¡Ë
 tmp.
 tmp :- new($x) | a($x).
 *--->
 a(!).  (½ÐÎÏ¤Ï a(!0x1ab5038)¤«, ŬÅö¤ÊÃͤòÉÕ¤±¤Æa(!1)¤È¤«)
-INSTR_COPYATOM
--¤³¤ì¤Þ¤Ç¤ÏƱ¤¸ID¤ò»ý¤Ählink¤ÏÊ£¿ô¸ÄÀ¸À®²Äǽ
---¥Ý¥¤¥ó¥¿¤Ë¤¹¤ë¤ÈID¤Ï¥æ¥Ë¡¼¥¯
--Ê£À½¤·¤¿¤é¥ª¥ê¥¸¥Ê¥ë¤ÈÊ»¹ç¤¹¤ë
 tmp.
 tmp :- new($x) | a($x), b($x).
 *--->
 a(!0x1ab5038). b(!0x1ab5068). @5. 
 == HyperLink =============================================
           [hl_ID]   [parent] [elem]  [rank (direct child)]
  Name ----------------------------------------------------
         0x1ab5038       root    ---   1(0x1ab5068)
         0x1ab5068  0x1ab5038    ---   0
 ==========================================================




**2010-11-24 [#ef1cfe00]
***¸ÍÀîÀèÀ¸¤Î¥Ç¥£¥¸¥¿¥ë²óÏ©Àß·×(¤´¤Æ¤Õ¤è¤ê) [#v1c49927]
-²óÏ©¤ÎÀß·× ¡ß ¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯
--Íî¤ÁÃ夤¤¿¤éÄ´¤Ù¤Æ¤ß¤ë
***hyperlink : »ÅÍÍÊѹ¹ [#g71546e0]
-¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ë¤ÊID¤Ç´ÉÍý¤¹¤ë¤è¤ê¡¢¥¢¥È¥à¤Î¥Ý¥¤¥ó¥¿¤Ç¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤ò´ÉÍý¤¹¤ëÊý¤¬²¿¤«¤ÈÅԹ礬Îɤ¤¤¿¤á


**2010-11-23 [#wf54aa25]
***boolean.lmn¤Î¥³¥ó¥Ñ¥¤¥ë [#b488c708]
-½¤ÀµÈǤò°ìºòÆü¥³¥ß¥Ã¥È¤·¤¿¤¬¡¢¤É¤¦¤ä¤é¤Á¤ã¤ó¤ÈÆ°¤¤¤Æ¤¤¤ë¤ß¤¿¤¤
-²¶¤¬¤è¤¯¸«¤Æ¤¤¤¿boolean.lmn¤Î¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼¤Ï¡¢Ã±¤Ë¥Î¡¼¥Ñ¥½¤Ç´Ö°ã¤Ã¤¿¥Ñ¥¹¤òLMNTAL_HOME¤Ë»ØÄꤷ¤Æ¤¤¤¿¤«¤é½Ð¤Æ¤­¤Æ¤¤¤¿¤â¤Î¤À¤Ã¤¿¡¢±ªïè¤Ê¤ó¤Æ¥ì¥Ù¥ë¤¸¤ã¤Ê¤¤

**2010-11-22 [#p68a4296]
***¥Ç¥Õ¥©¥ë¥È¥»¥Ã¥·¥ç¥ó¤ÎÊѹ¹ [#xad3b9a7]
- netbook edition¤òÆþ¤ì¤ë¤È¡¢¥í¥°¥¤¥ó»þ¤ËdesktopÈǤâÁªÂò¤Ç¤­¤ë¤±¤É¡¢¥Ç¥Õ¥©¥ë¥È¥»¥Ã¥·¥ç¥ó¤òÊѹ¹¤·¤¿¤±¤ì¤Ð¡¢¥·¥¹¥Æ¥à´ÉÍý¢ª¥í¥°¥¤¥ó²èÌ̤ÎÀßÄê
***ÆüËܸìÆþÎϤ¬½ÐÍè¤Ê¤¤ [#y5cc350c]
-¥·¥¹¥Æ¥à¢ªÀßÄꢪ¥­¡¼¥Ü¡¼¥É¡¦¥¤¥ó¥×¥Ã¥È¥á¥½¥Ã¥É¤«¤éAuthy¤òÄɲÃ


**2010-11-20 [#af04f1ac]
*** Xp - ubuntu¥Ç¥å¥¢¥ë¥Ö¡¼¥È´ØÏ¢ [#y14fdd3c]
-wubi¤Ç¥¤¥ó¥¹¥È¡¼¥ë¼ºÇÔ
--permission denied ¤È¤Ê¤Ã¤Ælog¤ò»²¾È¤¹¤ë¤è¤¦¤Ë¸À¤ï¤ì¤ë
--iso¥Õ¥¡¥¤¥ë¤Î¥À¥¦¥ó¥í¡¼¥É¤Ç½ªÎ»¤·¤Æ¤¤¤¿¤é¡¢[[¤³¤³:http://www.ubuntulinux.jp/News/ubuntu1004-desktop-ja-remix-20100512]]¤«¤éiso¤ò¥À¥¦¥ó¥í¡¼¥É
--Deamon tools lite¤Çiso¤ò¥Þ¥¦¥ó¥È¤·¤Æ°ìöubuntu¤ò¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ë
--ºÆ¤Óiso¤«¤é¥¤¥ó¥¹¥È¡¼¥ë³«»Ï
-´ûÄê¤Îµ¯Æ°OS¤òÊѹ¹¤¹¤ë
--Xp -> ¥³¥ó¥Ñ¥Í -> ¥·¥¹¥Æ¥à -> ¾ÜºÙÀßÄê -> µ¯Æ°¤È²óÉü ¤«¤éÊѹ¹
*** boolean.lmn¤¬¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤«¤Ã¤¿¥Ð¥° [#cc5791de]
-²¶¤Ç¤·¤¿...½¤ÀµÈǤò¥³¥ß¥Ã¥È¤·¤Þ¤·¤¿¤¬¡¢¥Á¥§¥Ã¥¯¤Ç¤­¤Æ¤Ê¤¤¤Î¤Ç¤Á¤ã¤ó¤Èľ¤Ã¤Æ¤ë¤«¤É¤¦¤«

**2010-11-19 [#le08f0fe]
***ubuntu¤ÇSLIM¤¬Æ°¤«¤Ê¤¯¤Ê¤Ã¤¿·ï²ò·è [#i6e01716]
-iwataso¤¬²ò·èË¡¤ò¤Ê¤ó¤È¤«»×¤¤½Ð¤·¤Æ¤¯¤ì¤¿¤ª¤«¤²¤ÇÉü³è¡ª
-make install ¤Ç /usr/local/share/¤Ë½ÐÍè¤ëslim¤¬°­¤«¤Ã¤¿¡©
--''slim¤È¤¤¤¦Ì¾Á°¤òÊѹ¹¤¹¤ì¤Ð''Àµ¾ï¤ËÆ°¤¯¤è¤¦¤Ë¤Ê¤Ã¤¿
--¸¶°ø¤Ï²¿¤Ê¤ó¤À¤í¤¦¡©
***Windows XP:;·×¤Ê¥¹¥¿¡¼¥È¥¢¥Ã¥×¥×¥í¥°¥é¥à¤ò²ò½ü [#d168e7a2]
-[[»²¹Í:http://www.atmarkit.co.jp/fwin2k/win2ktips/180disabl_autorun/disabl_autorun.html]]

**2010-11-18 [#b7bc1261]
***ubuntu¤ÇSLIM¤¬µÞ¤ËÆ°¤«¤Ê¤¯¤Ê¤Ã¤¿·ï [#xd1399bd]
-°Ê²¼¤ò¿§¡¹»î¤·¤¿
***wubi [#bc3ba012]
-ÄɲäÇubuntu¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤Ï½ÐÍè¤Ê¤½¤¦¡¢¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ë¤¬É¬ÍפȸÀ¤ï¤ì¤ë
***¤â¤¦°ìÂæ¤ÎPC¤Ëubuntu¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤ÆÈæ³Ó¤·¤Æ¤ß¤¿ [#ya73af4a]
-configure¤ÎÆâÍƤò¸ß¤¤¤ËÈæ³Ó¤·¤Æ¤ß¤¿
--mawk¤Ègawk¤È¤¤¤¦¥½¥Õ¥È¤Î°ã¤¤¤¬¤¢¤ê¡¢¤½¤ÎÊÕ¤ò¤½¤í¤¨¤Æ¤ß¤¿¤±¤É·ë¶ÉÊѤï¤é¤º

***ubuntu : eclipse install memo [#x5161a1c]
-eclipse
--ÇÛÉÛ¸µ¤«¤é¥Ð¥¤¥Ê¥ê¥¤¥ó¥¹¥È¡¼¥ë
-SVN
--Subversive SVN Connectors Site - http://community.polarion.com/projects/subversive/download/eclipse/2.0/update-site/
---Subversive SVN Connectors
---Subversive SVN Team Provider (Incubation)
---SVNKit 1.3.x Implementation (Optional)
-SLIM compile
--flex¤Î¥¤¥ó¥¹¥È¡¼¥ë¤À¤±¤Ïµ¤¤Å¤­¤Ë¤¯¤¤


**2010-11-17 [#s18bab59]
***kernel¤ÎºÆ¹½ÃÛ [#sd2a64f9]
 $ sudo -s
  
 /*** ¥«¡¼¥Í¥ëºÆ¹½ÃÛ¤ËɬÍפʥѥ屡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë ***/
 # apt-get install build-essential
 # apt-get install kernel-package libncurses5-dev libqt3-mt-dev
 
 /*** ¥«¡¼¥Í¥ë¥½¡¼¥¹¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤ÆŸ³« ***/
 # apt-get install linux-source-2.6.28
 # cd /usr/src
 # tar xvjf linux-source-2.6.28.tar.bz2
 
 /*** .config ¥Õ¥¡¥¤¥ë¤ÎºîÀ® ***/
 # cd linux-source-2.6.28
 # cp /boot/config-2.6.28-xx-generic .config
 # make oldconfig
 
 /*** CPU´ØÏ¢¤Î¥Ñ¥é¥á¡¼¥¿¤ò´Ä¶­¤Ë¹ç¤ï¤»¤Æ½¤Àµ ***/
 # make menuconfig
 
 Î㤨¤Ð...
   Processor type and features >
    Processor family => Core 2/newer Xeon
    Timer frequency => 1000 HZ
 
 /*** ¥«¡¼¥Í¥ë¤Î¥ê¥Ó¥ë¥É ***/
 # make-kpkg clean
 # make-kpkg --initrd --revision=20090618 kernel_image kernel_headers
 
 /*** .deb ¤¬¤Ç¤­¤ë¤Î¤Ç dpkg ¤Ç¥¤¥ó¥¹¥È¡¼¥ë ***/
 # cd ..
 # dpkg -i linux-image-2.6.28.xx_20090618_x86.deb

**2010-11-17 [#h7e9af0d]
-memo
--lmntal.cup¤Ë¤´¤ß¤¬Æþ¤Ã¤Æ¤¤¤¿¤Î¤ò½¤Àµ¡¢¤½¤Î¤¦¤Á¥³¥ß¥Ã¥È

**2010-11-09 [#sf2cb5ab]
-Ãæ´Öȯɽ¥á¥â
--ID¤Î»ÈÍÑ¿ô¤ò¬¤Ã¤Æ¤ß¤ë
--¥°¥é¥Õ¤À¤±¤Ç¤Ê¤¯¡¢ÎãÂê¤ÎÆâÍÆ¡¢Æ±¼ÂÁõ¤·¤¿¤«¡¢·ë²Ì¤Î¹Í»¡¤ÏɬÍ×
--¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ë¤ÊID¤Ç¤Ï¤Ê¤¯¡¢¥¢¥É¥ì¥¹¤òID¤Ë
---¤Ç¤â·ë¶É¥Õ¥¡¥ó¥¯¥¿¤ÎID¿ô¤Ï·è¤Þ¤Ã¤Æ¤¤¤ë¤Î¤Ç¤è¤¯¹Í¤¨¤¿¤Û¤¦¤¬¤è¤µ¤½¤¦
-¥¢¥ó¥Ó¥¨¥ó¥È¤ò½ñ¤¤¤Æ¤ß¤¿¤¤
--¥é¥à¥À·×»»¤â
-º£¸å¤ÎÊý¸þÀ­¡¢Èó·èÄê¼Â¹Ô¤Îɾ²Á


**2010-11-03 [#w26aafeb]
-¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤Ø¤ÎÃͤΫÇû¤ÎɬÍ×À­¡©
--½¸¹ç¤¬»ý¤ÄÃͤòn(!1, 1).¤È¤«¤Çɽ¤¹¤È¡¢Î㤨¤Ð
 a($x), n($x,N1), b($y), n($y,N2) :- N=N1+N2 |...
--¤Î¤è¤¦¤ËÃͤò­¤¹¥ë¡¼¥ë¤Ç¡¢N1,N2¤¬Æ±¤¸ÃͤǤ¢¤ë¾ì¹ç¤¬¤¢¤ë¤Ê¤é¡¢¤½¤Îʬn¤Î¸Ä¿ô¤òÁý¤ä¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡¢½ñ¤¯¤Î¤¬¤Á¤ç¤Ã¤ÈÌÌÅݤ«¤Ê

**2010-10-29 ¤½¤Î2 [#y53bee55]
***fibonacci¤Î¥ª¡¼¥À¡¼¤¬°­¤«¤Ã¤¿¸¶°ø¡Ê»Ä¤ê¤ÎȾʬ¡Ë [#a9a3e3d0]
--add¤Ë¤Æ'+'¤«¤éfindatom¤·¤Æ¤¤¤¿¤Î¤¬¸¶°ø¡¢Ãͤò»ý¤Ã¤Æ¤¤¤ëv¤«¤éfindatom¤¹¤ì¤ÐŬÍѼºÇÔ¤¬¤«¤Ê¤êÍÞ¤¨¤é¤ì¤ë

 unify @@ fib($n, N1, M1) \ fib2($n, N2, M2) :- hlink(M1), int(N2) | M1 >< M2.
 fib1 @@ fib2(N,0,M) :- hlink(N) | v(M, 1).
 fib2 @@ fib(N,1,M) :- hlink(N) | v(M, 1).
 fib3 @@ 
 fib($n, N, M) :-
   N > 1, N1 = N-1, N2 = N-2, 
   make(N, $a), make(N1, $b), new($x), new($y), hlink($n) |
   fib($a, N1, $x), fib2($b, N2, $y), M = $x + $y.
 add @@ v($x, X), v($y, Y), H = $x + $y :- Z = X+Y  | v(H, Z) ,v($x, X).


|NÈÖÌÜ         |5000 |8000 |10000|16000|20000|32000|O  |h
|slim hlink opt| 0.08| 0.14| 0.18| 0.28| 0.37| 0.56|   |
|chr int opt   | 0.03| 0.04| 0.08| 0.10| 0.17| 0.25|   |


***fibonacci¤Î¥ª¡¼¥À¡¼¤¬°­¤«¤Ã¤¿¸¶°ø¡ÊȾʬ¡Ë [#t806dd09]
-unify¤¹¤ë¤è¤êÁ°¤Ëfib3¤¬Å¬ÍѤµ¤ì¤Æ¤·¤Þ¤¤¡¢Í¾·×¤Ê¼ê´Ö¤¬¤«¤«¤Ã¤Æ¤¤¤¿
-Ê»¹ç¤¹¤ë¦fib¤ÈÊ»¹ç¤µ¤ì¤ë¦fib2¤Ëʬ¤±¤ë¤³¤È¤Ç¡¢unify>fib3¡¢¤È¤¤¤¦Í¥ÀèÅ٤Ǽ¹ԤǤ­¤ë
--¤À¤¤¤ÖÁ᤯¤Ê¤Ã¤¿¤¬¡¢¤³¤ì¤Ç¤â·×»»Î̤ÏN^2¡Á3¡¢¤Þ¤À¤â¤¦°ìÃʳ¬¸¶°ø¤¬¤¢¤ë¤Î¤«

 unify @@ fib($n, N1, M1) \ fib2($n, N2, M2) :- 
   hlink(M1), int(N2) | M1 >< M2.
 fib1 @@ fib2(N,0,M) :- hlink(N) | v(M, 1).
 fib2 @@ fib(N,1,M) :- hlink(N) | v(M, 1).
 fib3 @@
 fib($n, N, M) :-             /* hlinkid¤ÈN,N1¤Ï1¤º¤Ä¤º¤é¤·¤Æ¤¤¤ë */
   N > 1, N1 = N-1, N2 = N-2, 
   make(N, $a), make(N1, $b), new($x), new($y), hlink($n) |
   fib($a, N1, $x), fib2($b, N2, $y), M = $x + $y.
 add  @@
 H = $x + $y, v($x, X), v($y, Y) :- Z = X+Y | v(H, Z), v($x, X), v($y, Y).

|NÈÖÌÜ         |1000 |2000 |4000 |8000 |16000|O  |h
|slim int hlink| 0.28| 1.18| 7.23|38.30|     |   |

--memo
 16000 : 
  8000 : 23999
  4000 : 11999
  2000 :  5999
  1000 :  2999

**2010-10-29 [#uca7298f]
-ÈÉ¥¼¥ß¥á¥â
--CHR¤Ç½ñ¤¯¤³¤È¤Ë°ÕÌ£¤Î¤¢¤ëÎãÂê¤òÁª¤Ö
--fibonacci, leq¤Î²òÀÏ

**2010-10-28 [#d7658fd6]
-grub : ¡ß¥°¥ë¡¼¥Ö¡¢¡û¥°¥é¥Ö¤Þ¤¿¤Ï¥¸¡¼¥é¥Ö

**2010-10-27 [#r4503471]
***fibonacci [#lbef4d44]
-Ãí)¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Ï¡¢²¼µ­¤Îbottomup, topdown¤Î¤è¤¦¤Ê¤ä¤êÊý¤ò¤·¤Ê¤¯¤Æ¤â¡¢¥ê¥¹¥È¤ò»È¤¨¤Ð¿ôËüÈÖÌܤ¯¤é¤¤¤Þ¤Ç¤Ï°ì½Ö¤Çµá¤á¤ë¤³¤È¤¬¤Ç¤­¤ë
 fib(N,[X,Y|L]) :- N > 0, N1 = N-1, Z = X+Y | 
     fib(N1,[Z,X,Y|L]).
--¤¢¤¯¤Þ¤ÇÀ­Ç½Â¬Äê¤Î¤¿¤á¤ÎÎãÂê¤È¤¤¤¦¤³¤È¤Ç...

***fibonacci (bottomup) [#x3bf3139]
-hyperlink¤ò»È¤¦°ÕÌ£¤Ï¤¢¤Þ¤ê̵¤¤¤¬¡¢²¼¤Îtopdown¤È¤ÎÈæ³Ó¤Î¤¿¤á¤Ë¬¤Ã¤Æ¤ß¤¿
|NÈÖÌÜ         |100 |200  |400  |800  |O  |h
|slim int      |0.14|0.92 |6.92 |52.85|   |
|slim hlink opt|    |     |     |     |   |
|chr  int opt  |0.05|0.19 |0.72 |2.87 |   |

***fibonacci (topdown) [#x621ef5b]
-ÏÀÍýÊÑ¿ô¤ò¸ú²ÌŪ¤Ë»È¤Ã¤Æ¤¤¤ëÎãÂê
 fibonacci(N,M1) # ID \ fibonacci(N,M2) <=>  M1 = M2 pragma passive(ID).
|NÈÖÌÜ         |10   |15   |20   |25    ||100 |200  |400   ||10000|20000|O  |h
|slim int      | 0.01| 0.03| 2.00|241.64||    |     |      ||     |     |   |
|slim mem      | 0.04|38.70| over|      ||    |     |      ||     |     |   |
|slim hlink opt|     |     |     |      ||0.51|12.34|267.82||     |     |   |
|chr  int      |     |     |     |      ||    |     |      ||20.64|     |   |
|chr  int opt  |     |     |     |      ||    |     |  0.00|| 0.08| 0.15|   |
--Ëì¤Ë¤è¤ëµ¼»÷ÏÀÍýÊÑ¿ô¤ò»È¤Ã¤Æ¤â¡¢·ë¶ÉƱ¤¸Ãͤò»ý¤Ä½¸¹ç¤òÊ»¹ç¤¹¤ëÁàºî¤Î¥ª¡¼¥À¤¬°­¤¤¤¿¤á¤Ë»þ´Ö¤¬¤«¤«¤Ã¤Æ¤¤¤ë
--hyperlink¤âÊÑ¿ô¤¬»ý¤ÄÃÍƱ»Î¤ò²Ã»»¤¹¤ë¥ë¡¼¥ë¤¬Í¾Ê¬¤Ë¤¢¤ëʬchr-opt¤è¤ê¥ª¡¼¥À¡¼¤¬°­¤¤
--91ÈÖÌÜ7540113804746346429°Ê¹ß¤Ïslim¤Ç¤ÏÀµ¤·¤¯½ÐÎϤµ¤ì¤Ê¤¤
&ref(fib.png);



**2010-10-25 [#kf170c6a]
***ram_simulator [#w712d1ce]
-memory num = 10, program_counter = N
 prog(L,L1,add(B),A), mem(B,Y) \ mem(A,X), prog_counter(L) <=> 
     Z is X+Y, mem(A,Z), prog_counter(L1).
|N             |5k  |10k |20k |40k |O  |h
|slim int      |0.17|0.33|0.64|1.27|   |
|slim hlink    |    |    |    |    |   |
|slim hlink opt|    |    |    |    |   |
|chr  int      |    |    |    |    |   |
|chr  int opt  |0.23|0.51|1.33|3.76|   |
-memory num = 30, program_counter = N
|N             |5k  |10k |20k |40k  |O  |h
|slim int      |1.59|3.16|6.33|12.65|   |
|slim hlink    |    |    |    |     |   |
|slim hlink opt|0.15|0.28|0.55| 1.10|   |
|chr  int      |1.54|2.99|5.96|12.35|   |
|chr  int opt  |0.21|0.51|1.26| 3.61|   |
--(chr¤Î¥ª¡¼¥À¡¼¤¬°­¤¤¤Î¤Ï¡¢Æ±¤¸Ãͤò»ý¤ÄÊÑ¿ô¤¬Â¿¤¤¤¿¤á¤Ë¡¢dense_int¤¬µÕ¸ú²Ì¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤é¤À¤í¤¦¤«¡©)

**2010-10-24 [#z219609f]
***union-find [#o9f60cff]
-
|N             |100 |200 |400 |800 |160O |3200  |O  |h
|slim int      |0.03|0.13|0.71|4.89|36.52|290.04|N^3|
|slim hlink    |    |    |    |    |     |      |   |
|slim hlink opt|0.03|0.11|0.41|1.54| 6.27| 24.95|N^2|
|chr  int      |    |    |    |    |     |      |   |
|chr  int opt  |0.02|0.05|0.15|0.55| 2.18|  9.29|N^2|

***union-find opt [#s385f1ac]
-pass compression for find, union-by-rank
|N             |100 |200 |400 |800  |160O  |3200 |O  |h
|slim int      |0.03|0.41|3.26|25.87|206.28|     |N^3|
|slim hlink    |    |    |    |     |      |     |   |
|slim hlink opt|0.03|0.05|0.21| 0.73|  3.12|11.58|N^2|
|chr  int      |    |    |    |     |      |     |   |
|chr  int opt  |0.02|0.05|0.17| 0.64|  2.51| 9.99|N^2|
-slimÆâÉô¤Ë¼ÂÁõ¤·¤¿union-find
|N             |8000|16k |32k |64k |O  |h
|slim hyperlink|0.01|0.02|0.04|0.08|N  |

***cycle [#w712d1ce]
-3ĺÅÀ¤«¤é¤Ê¤ëÊÄÏ©¤òõº÷¤¹¤ë(propagation, uniq̵¤·)
 edge(X, Y), edge(Y, Z), edge(Z, X) <=> cycle(X, Y, Z).
|N             |8k  |16k |32k |64k  |O  |h
|slim int      |    |    |    |     |   |
|slim hlink    |    |    |    |     |   |
|slim hlink opt|0.33|0.67|1.34| 2.69|   |
|chr  int      |    |    |    |     |   |
|chr  int opt  |1.25|2.54|5.05|10.18|   |

***lexicographic [#w712d1ce]
-¼­½ñ½çÈæ³Ó(5¡Á10¤ÎŤµ¤Î¥ê¥¹¥È¤òN²óÈæ³Ó)
 l4 @ lex([X|L1],[Y|L2]) <=> X==Y | lex(L1,L2).
|N             |2500| 5000|10k |20k  |O  |h
|slim int      |0.18| 0.75|3.17|20.58|   |
|slim hlink    |2.53|13.88|    |     |   |
|slim hlink opt|0.45| 2.00|8.82|46.85|   |
|chr  int      |0.65| 1.25|2.58| 5.13|   |
|chr  int opt  |0.03| 0.06|0.12| 0.23|   |
--findatom¤Ç¤Ï¤Ê¤¯deref¤Çhyperlink¤ËÅþ㤹¤ë¤è¤¦¤Ê¥ë¡¼¥ë¤ÎºÇŬ²½¤Ï¹Íθ¤·¤Æ¤¤¤Ê¤¤¤¿¤á¡¢¥ª¡¼¥À¡¼¤¬°­¤¤
--¤½¤â¤½¤âhlink¤ò»È¤¦¥á¥ê¥Ã¥È¤Ï¤¢¤Þ¤ê¤Ê¤¤




**2010-10-22 [#v1492a89]
***leq [#q67e9865]
-¥¯¥¨¥ê¡§leq(1,2), leq(2,3), ... leq(N, 1).
 reflexivity  @ leq(X,X) <=> true.
 antisymmetry @ leq(X,Y), leq(Y,X) <=> X = Y.
 idempotence  @ leq(X,Y) \ leq(X,Y) <=> true.
 transitivity @ leq(X,Y), leq(Y,Z) ==> leq(X,Z).
|N             |20  |40  |60  |80   |O  |h
|slim int      |0.32|16.06|929.34|  |   |
|slim hlink    ||||||
|slim hlink opt|0.03|0.79|6.42|28.79|   |
|chr  int      ||||||
|chr  int opt  |0.06|0.29|1.31| 5.45|   |
--uniq¤Ïpropagation¤è¤ê»þ´Ö¤¬¤«¤«¤ë¤¿¤á¡¢¤³¤¦¤¤¤¦·ë²Ì

//***ÊÑ¿ô¤Ø¤ÎÃͤΫÇû¤¬Íߤ·¤¤ÎãÂê [#q6bbc099]
//-fib_topdown.pl
//--¥È¥Ã¥×¥À¥¦¥ó¤Ç¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤òµá¤á¤ë
// fib(N,M) ==> N > 1 | N1 is N-1, fib(N1,M1), N2 is N-2, fib(N2,M2), M is M1 + M2.

**2010-10-22 [#z1d8f4ce]
***CHR bencnmark [#af25fb11]
-¤Þ¤¿¸«¼º¤ï¤Ê¤¤Íͤ˥á¥â
--[[Ëܲȡ©:http://people.cs.kuleuven.be/~tom.schrijvers/CHR/]]
--[[indexingÍÑ:http://people.cs.kuleuven.be/~tom.schrijvers/CHR/Indexing/]]

**2010-10-21 [#h4690d57]
***À°¿ôÈæ³Ó²þ¤á¥¢¥È¥àÈæ³Ó¤ÎºÆ¡¹»î [#n3b8367e]
-¾ò·ï¤ò¤è¤êƱ¤¸¤Ë¤·¤ÆºÆ¡¹»î
- slimhl395/101109/vartest.lmn
- lmntal -O3 --slimcode --hl-opt atomcmp.lmn | slim --hl -


|N             |8k  |16k  |32k   |64k   |O  |h
|slim int      |0.64| 2.52| 10.08| 41.87|N^2|
|slim hlink    |4.49|27.58|120.20|607.76|N^2|
|slim hlink opt|0.02| 0.03|  0.06|  0.12|N  |
|chr  int      |3.41|15.50| 70.15|288.34|N^2|
|chr  int opt  |0.06| 0.15|  0.28|  0.59|N  |


***¥³¥ó¥Ñ¥¤¥é¤ò¥³¥ß¥Ã¥È [#j3d6c504]
-hyperlink¤òjavaÈÇ¥³¥ó¥Ñ¥¤¥é¤Ë¥³¥ß¥Ã¥È¤·¤¿
***hyperlink¤Î½ÐÎÏ [#ie20402f]
-Ê»¹ç¤µ¤ì¤¿hyperlink¤òɸ½à½ÐÎÏ»þ¤Ëroot¤Î¥Õ¥¡¥ó¥¯¥¿¤Ç½ÐÎϤ¹¤ë¤è¤¦¤Ë¤·¤¿

**2010-10-20 [#h4690d57]
***hyperlink¤«¤é¤Îfindatom¡¡²þÎÉÈÇ [#v88402db]
-Ê»¹ç¤·¤¿°Û¤Ê¤ë̾Á°¤ÎhyperlinkƱ»Î¤âÈæ³Ó¤Ç¤­¤ë¤è¤¦¤Ë
-Ê£¿ô°ú¿ô¤¬¤¢¤ë¾ì¹ç¤Î¥Ð¥°¤ò½¤Àµ
 leq($x, $y), leq($y, $x).
-Ʊ°ì¥¢¥È¥àÆâ¤ÇʬΥ¤¬µ¯¤³¤Ã¤Æ¤¤¤ë¾ì¹ç¤ËÂбþ
 leq($x, $x)
-¤½¤Î¾¡¢¤¤¤í¤¤¤íºÇŬ²½

&br;

-À°¿ôÈæ³Ó¤òÄÉ»î
|N|10k|20k|40k|h
|hlink(ÄÉ»î)|15.87|78.59||
|hlink opt(Á°²ó¤Î)|0.02|0.04|0.09|
|hlink opt(º£²ó¤Î)|0.03|0.05|0.10|
|chr opt|0.08|0.20|0.39|
--õº÷¤Ë¤«¤«¤ëÁàºî¤ä¾ò·ïʬ´ô¤¬Áý¤¨¤ÆÃÙ¤¯¤Ê¤ë¤Ï¤º¤À¤Ã¤¿¤¬¡¢¤½¤ÎʬºÇŬ²½¤â¤·¤¿¤Î¤Ç¡¢Â礭¤¯¥¹¥Ô¡¼¥É¤¬Íî¤Á¤ë¤³¤È¤Ï¤Ê¤«¤Ã¤¿

**2010-10-12 ¤½¤Î3 [#wba7e196]
***leq.pl(CHR)¤òhyperlink¤Ç½ñ¤¤¤Æ¤ß¤ë [#ed77cb0f]
-leq.pl
 ref @ leq(X,X) <=> true.
 ant @ leq(X,Y), leq(Y,X) <=> X = Y.
 ide @ leq(X,Y) \ leq(X,Y) <=> true.
 tra @ leq(X,Y), leq(Y,Z) ==> leq(X,Z).
-leq_hl.lmn
 ref @@ leq($x, $x) :- .
 ant @@ leq($x, $y), leq($y, $x) :- hlink($x), $x \= $y | $x >< $y.
 ide @@ leq($x, $y), leq($x, $y) :- leq($x, $y).
 tra @@ leq($x, $y), leq($y, $z) :-
          uniq($x, $z) | leq($x, $y), leq($y, $z), leq($x, $z).
-SLIM¤Ç¤Î¼Â¹Ô·ë²Ì
 leq('!1', '!2'), leq('!2', '!1'), a('!1'), b('!2').
 *--ant@@-->
 '!1'(a). '!2'(b). @5
 == HyperLink ===============================================
          [func] [parent] [elem] [rank (direct child)]
  Name ----------------------------------------------------
             !1       !1      2      1 (2)
             !2       !1    ---      0
 ============================================================
--a, b¤ÏÊÑ¿ô̾¤ËÁêÅö¡¢É½¤«¤é!1¤È!2¤¬Æ±¤¸½¸¹ç¤Ë°¤·¤Æ¤¤¤ë¤³¤È¤¬Ê¬¤«¤ë

**2010-10-12 ¤½¤Î2 [#a70e8b7b]
***hyperlink¤Î»È¤¤Êý¥Ú¡¼¥¸¤ò¾¯¤·À°È÷ [#x424455c]
-[[hyperlink»ÅÍͤޤȤá]]
***hyperlink SLIM¦¤òbranch¤Ë¥³¥ß¥Ã¥È [#w45de2da]
-»È¤¤Êý¤Ï[[¤³¤³>hyperlink»ÅÍͤޤȤá#pf1ceb9f]]


**2010-10-12 [#mfa8bf06]
***subversion¤Ç¥¨¥é¡¼ [#z1f59234]
-Let'sNote¤ÎÊý¤«¤é¥³¥ß¥Ã¥È¤·¤è¤¦¤È¤·¤¿¤é¡¢¥¨¥é¡¼¤¬½Ð¤Æ½ÐÍè¤Ê¤«¤Ã¤¿¡£
--̲¤¤¤«¤éÌÀÆüÄ´¤Ù¤ë
 commit -m "hyperlink branch (¦Á-version)..." (19 paths specified)
    Failed to execute WebDAV PROPPATCH
 svn: Commit failed (details follow):
 svn: At least one property change failed; repository is unchanged
 RA layer request failed
 svn: Error setting property 'log': 
 Could not execute PROPPATCH.


**2010-10-10 [#hc2310bd]
*** hyperlink compiler¦¤ò¥³¥ß¥Ã¥È [#wb13cfbb]
-devel/sample/seiji/hyperlink_*.zip
--»È¤¤Êý¤Ï[[¤³¤³>hyperlink»ÅÍͤޤȤá#pf1ceb9f]]

**2010-10-08 [#s4229dfd]
-ÈÉ¥¼¥ß
--¥Õ¥¡¥ó¥¯¥¿¤Î¿ô¤¬Â­¤ê¤Ê¤¯¤Ê¤ë¤Î¤Ï¤É¤¦¤·¤è¤¦¢ª¤È¤ê¤¢¤¨¤ºÃª¾å¤²
--¥³¥ß¥Ã¥È¤·¤Ê¤­¤ã
---slim¤Î¥ê¡¼¥¯¼è¤ê¢ª¥³¥ó¥Ñ¥¤¥é¤Î¥³¥ß¥Ã¥È¢ªslim¤Î¥³¥ß¥Ã¥È¤Î½ç¤Ë¤ä¤ë¤«
-hyperlink branch
--"branches"¤ò±¦¥¯¥ê¡¢¥Õ¥©¥ë¥À¿·µ¬À¸À®
--"trunk"Æâ¤Î"slim"¤ò¥³¥Ô¡¼¡¢"branch"Æâ¤Î"¿·µ¬À¸À®¤·¤¿¥Õ¥©¥ë¥À"¤ò±¦¥¯¥ê¡¢Å½¤êÉÕ¤±


**2010-10-07 [#h7a7d450]
***hyperlink¤òÍøÍѤ·¤¿findatom¤ÎºÇŬ²½ [#ya5f947d]
-Æ°¤¯¤è¤¦¤Ë¤Ê¤Ã¤¿¤Î¤Ç¡¢°ìö¬¤Ã¤Æ¤ß¤¿
--unary¥¢¥È¥àÈæ³Ó
---hlink opt : º£²ó¤Î¼ÂÁõ
|N|10k|20k|40k|80k|h
|hlink|10.10||||
|hlink opt|0.09|0.17|0.36|¢¨|
|chr opt|0.08|0.20|0.39|0.80|
---(¢¨hyperlink¤Î¿ô¤¬Â­¤ê¤Ê¤¤)
---Èù̯¤Ë¾¡¤Ã¤Æ¤ë¡©¤¤¤ä¤É¤Ã¤³¤¤¤É¤Ã¤³¤¤¤«
---¤â¤Ã¤È¤Á¤ã¤ó¤È¼ÂÁõ¤¹¤ì¤Ð¡¢¤â¤¦¾¯¤·Á᤯¤Ç¤­¤ëµ¤¤¬¤¹¤ë

---Äɻ¥¬¡¼¥É¤Ëhlink(unary¤Ç¤â²Ä)¥Á¥§¥Ã¥¯¤òÆþ¤ì¤¿¾ì¹ç
|N|10k|20k|40k|80k|h
|hlink opt|0.02|0.04|0.09|¢¨|
|chr opt|0.08|0.20|0.39|0.80|
---¤«¤Ê¤êÁᤤ


-TODO:Ëì¤ò´Ó¤¯¥ê¥ó¥¯¤ËÀܳ¤·¤Æ¤¤¤ë¾ì¹ç¤Îhyperlink¥¢¥È¥à¤Î½èÍý¤ÎÀ°È÷
**2010-10-04 [#e5d85fd2]
*** findproccxt[#k42188cb]
-ÆÃÄê¤Î¥¢¥È¥à°ú¿ô(·¿ÉÕ¤­¥×¥í¥»¥¹Ê¸Ì®)Ʊ»Î¤¬Æ±¤¸¹½Â¤¤ò»ý¤Ä¤³¤È¤ò¼¨¤¹Ãæ´ÖÌ¿Îá
--À¸À®»þ¤ÏŬÅö¤ËÁÞÆþ¡¢ºÇ¸å¤Ëcompile/Optimizer.java¤Ë¤Æfindatom¤è¤ê¤âÁ°¤ËʤÓÂؤ¨¤Æ¤ë

 a($x), a($x) :- ok.
 -------------------------------------------------
     --memmatch:
        spec           [1, 3]
        findproccxt    [1, 0, 2, 0]
        findatom    [1, 0, 'a'_1]
        findatom    [2, 0, 'a'_1]
        neqatom        [2, 1]
        jump           [L118, [0], [1, 2], []]

-¥½¡¼¥¹¥³¡¼¥ÉÃæ¤Ë½ñ¤¤¤¿ÀâÌÀ½ñ¤­

 /** findproccxt [atom1, length1, arg1, atom2, length2, arg2]
  * ¥¢¥È¥àÈÖ¹æatom1(²Á¿ô=lenght1)¤ÎÂèarg1°ú¿ô¤Î·¿ÉÕ¤­¥×¥í¥»¥¹Ê¸Ì®¤¬¡¢
  * ¥¢¥È¥àÈÖ¹æatom2(²Á¿ô=lenght2)¤ÎÂèarg2°ú¿ô¤Î·¿ÉÕ¤­¥×¥í¥»¥¹Ê¸Ì®¤ÈƱ̾¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹
  * ɬ¤º(atom1,arg1)¤¬¥ª¥ê¥¸¥Ê¥ë¡¢(atom2,arg2)¤¬¿·¤¿¤ËÀ¸À®¤µ¤ì¤¿Ì¾Á°¤Ë¤Ê¤ë¤è¤¦ÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë
  */


**2010-09-29 [#fb32f670]
***Ʊ̾·¿ÉÕ¤­¥×¥í¥»¥¹Ê¸Ì®¤ÎʬΥ [#r3fa6a93]
- --hl·Ï¥ª¥×¥·¥ç¥ó¤Ç¤Î¤ß»ÈÍѤǤ­¤ë¤è¤¦¤ËÊѹ¹ (2010-10-10)
-- ¤µ¤é¤Ë--hl-opt¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤ë¤³¤È¤Ç¡¢¥¬¡¼¥É¤Ë¼«Æ°Åª¤Ëhlink·¿¥Á¥§¥Ã¥¯¤òÁÞÆþ¤·¡¢groundÂÐground¤Î¹½Â¤Èæ³Ó¤ò¥Õ¥¡¥ó¥¯¥¿ÂÐ¥Õ¥¡¥ó¥¯¥¿¤ÇºÑ¤Þ¤¹¤è¤¦¤·¤Æ¤¤¤ë
-¥Ø¥Ã¥É¤ËË줬¤¢¤ë¾ì¹ç¤ÎÁàºî¤¬È´¤±¤Æ¤¤¤¿¤Î¤Ç½¤Àµ¡Ê2010-09-30)

&br;
-¤³¤ì¤Þ¤Ç¤Ï°ì¤Ä¤Î¥ë¡¼¥ëÆâ¤ÇƱ̾¤Î·¿ÉÕ¤­¥×¥í¥»¥¹Ê¸Ì®¤Ïµ­½Ò¤Ç¤­¤Ê¤«¤Ã¤¿¤¬¡¢°Ê²¼¤ÎÍͤËÊѹ¹¤·¤¿

 a($p), a($p) :- ...  ¢ª  a($p), a($p0) :- $p = $p0 | ...
--¥·¥ó¥¿¥Ã¥¯¥¹¥·¥å¥¬¡¼Åª¤Ê¤â¤Î
---¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¼«Æ°Åª¤Ë±¦Â¦¤ËÊÑ´¹¤·¤Æ¤¯¤ì¤ë
--¸µ¤Î̾Á°¤Î¸å¤í¤Ë¿ô»ú¤ò¤Ä¤±¤Æ¿·¤·¤¤Ì¾Á°¤Ë¤·¤Æ¤¤¤ë
--¤â¤Á¤í¤ó¡¢°Ê²¼¤Î¾ì¹ç¤â¹Íθ¤·¤Æ¤¢¤ë

 a($p), a($p), a($p0) :- ...  ¢ª  a($p), a($p1), a($p0) :- $p = $p1 | ...



**2010-09-25 [#w78abbbb]
***hlink¤Î¥³¥Ô¡¼¤Èºï½ü [#c9840d33]
-¥¢¥È¥à(hlink¥¢¥È¥à)¤ò10000*N²ó¤º¤Ä¥³¥Ô¡¼¡õºï½ü¤¹¤ë
--atom  : a(b)
--hlink : a('!1')
|N|100|200|400|800|O|h
|atom|1.193|2.337|4.640|9.240|O(N)|
|hlink|1.757|3.477|6.947|13.803|O(N)|
---¥ª¡¼¥À¡¼¤ÏÊѤï¤é¤Ê¤¤
---hlink¥¢¥È¥à¤ÎÀ¸À®¡¦ºï½ü¤Ë¤ÏÍ×ÁÇ¿ô¤ÎÁý¸º½èÍý¤¬È¼¤¦¤¿¤á¼ã´³»þ´Ö¤¬¤«¤«¤ë
---¾¤Ë¤â¸¶°ø¤¬¤¢¤ë¤«¤Ê¡©

-copy_and_delete.lmn
 {
 i(10000, 800). a(b).
 
 
 //new   @@ i(I, M), a($x) :- I > 0, I1 = I-1, unary($x) | i(I1, M), a($x), a($x).
 //del   @@ a($x), a($y) :- unary($x), unary($y) | a($x).
 
 hlinit @@ a(b) :- new($x) | a($x).
 newhl @@ i(I, M), a($x) :- I > 0, I1 = I-1, hlink($x) | i(I1, M), a($x), a($x).
 delhl @@ a($x), a($y) :- hlink($x), hlink($y) | a($x).
 
 }.
 
 {i(0, I), $p, @p}/ :- I > 0, I1 = I-1 | {i(10000, I1), $p, @p}.

**2010-09-24 [#d3c955b0]
***½¸¹ç¤ÎÍ×ÁǤò¿ô¤¨¤ë¤Î¤Ë¤«¤«¤ë»þ´Ö [#ra4a62a3]
-(10000¸Ä¤ÎÍ×ÁǤò»ý¤Ä)½¸¹ç¤ÎÍ×ÁÇ¿ô¤òN²ó¿ô¤¨¤¿»þ´Ö¤ò·×¬[sec]
--mem:Ëì¤ò°ì¤Ä¤Î½¸¹ç¡¢ÆâÉô¤Î¥¢¥È¥à¤ò½¸¹ç¤Ë°¤¹¤ëÍ×ÁǤȤߤʤ¹
--hlink:hyperlink¤Ë¤è¤Ã¤Æ½¸¹ç¤òɽ¤¹
|N|1000|2000|4000|8000|16000|32000|64000|h
|mem|3.84|7.74|15.51|31.11||||
|hlink|0.003|0.01|0.02|0.03|0.05|0.10|0.21|
---hlink¤Ï¼«¿È¤Ë¤Ä¤Ê¤¬¤ëÍ×ÁÇ¿ô¤ò¾ï¤ËÊÝ»ý¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¤Þ¤¡ÅöÁ³¤Î·ë²Ì


-num_mem.lmn
 {
 i(10000). num(0).
 i(I) :- I > 0, I1 = I-1 | i(I1), a(I).
 }.
 
 a2b{i(1000). num(N), a(X) :- N1 = N+1 | num(N1), b(X).}.
 b2a{i(1000). num(N), b(X) :- N1 = N+1 | num(N1), a(X).}. 
 
 {i(0), $p, @p}/, a2b{i(I), @q} :- I1 = I-1 | 
   count{$p, @q}, a2b{i(I1)}, '$callback'(gettime, start).
 
 count{num(N), $p, @p}/, a2b{$q}, b2a{i(I), @r} :- int(N), I > 0, I1 = I-1 |
   count{num(0), $p, @r}, a2b{$q, @p}, b2a{i(I1)}. 
 
 count{num(N), $p, @p}/, b2a{$q}, a2b{i(I), @r} :- int(N), I > 0, I1 = I-1 |
   count{num(0), $p, @r}, b2a{$q, @p}, a2b{i(I1)}.
 
 a2b{i(0), @p}, b2a{i(0)} :- '$callback'(gettime, end).
 
 end(E), start(S) :- R = E-.S | time(R).
-num_hl.lmn
 {
 i(10000).
 i(I) :- I > 0, I1 = I-1, new($h) | i(I1), e($h), a($h).
 e($x), e($y) :- $x \= $y | e($x), $x >< $y.
 }.
 
 i(10000).
 
 {i(0), e($h), $p, @p}/ :- hlink($h) | count{$p}, '$callback'(gettime, start).
 
 count{a($x), $p}, i(I) :- I > 0, I1 = I-1, $n = num($x) | 
   count{a($x), $p}, i(I1), num($n).
 
 i(0) :- '$callback'(gettime, end).
 end(E), start(S) :- R = E-.S | time(R). 
 
 end(E), start(S) :- R = E-.S | time(R). 

***--showhl [#b13024de]
-hyperlink¾ÜºÙ½ÐÎÏÍÑ¥ª¥×¥·¥ç¥ó¤ò¤³¤Ã¤½¤êÄɲÃ
--½ÐÎÏ¥Õ¥©¡¼¥Þ¥Ã¥È¤â°ì¿·
***¤½¤Î¾ [#g50b1ada]
-coname¤Ï¸½¾õ¤Ç¤ÏÍ×ÁÇ¿ô¤Ë´Þ¤á¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤ë
-hyperlink¤È9/14¤ÎÊѹ¹¤ò¥í¡¼¥«¥ë¤Îslim¤Ë¥Þ¡¼¥¸


**2010-09-22 [#s0e16d8d]
-½¸¹çÆâ¤Î¡ÖÍ×ÁÇ¿ô¡×¤ÎÄêµÁ
--!1¡Á!5¤Þ¤Ç¤Îname(³Æ1¸Ä)¤«¤é¤Ê¤ë½¸¹ç¤Ë¡¢coname !-1¤òÍ¿¤¨¤¿¤È¤­¡¢¤³¤Î½¸¹ç¤ÎÍ×ÁÇ¿ô¤Ï¤É¤¦¤Ê¤ë¤ó¤À¤í¤¦¤«
---5¸Ä¤Ê¤Î¤«5+1¸Ä¤Ê¤Î¤«
--coname¤ÏÍ×ÁǤȤ·¤Æ¿ô¤¨¤ë¤Ù¤­¤«¤É¤¦¤«¡¢¤Á¤ç¤Ã¤È¹Í¤¨¤¿Êý¤¬¤¤¤¤¤«¤â

-memo
--add
---alloc.c/lmn_new_atom(lmn_copy_satom¤Ê¤É¤â´Þ)
--sub
---alloc.c/lmn_delete_atom

**2010-09-18 [#y9606ad3]
- 9/14¤ÎÊѹ¹¤ò¥³¥ß¥Ã¥È¤·¤¿
--¾õÂÖ¿ô¤âÀµ¾ï¤ß¤¿¤¤¤À¤·¡¢Â¿Ê¬Âç¾æÉפÀ¤í¤¦

**2010-09-17 [#x11b74df]
*** --showrule [#jcbd8492]
-ruleset id¤Î¸å¤í¤Ë¡¢rule¤ÎÃæ¿È¤ò³¤±¤Æ½ÐÎϤ¹¤ë¥ª¥×¥·¥ç¥ó¤òǦ¤Ó¹þ¤Þ¤»¤¿
--°ìÅÙ¤âÈ¿±þ¤·¤Ê¤«¤Ã¤¿¥ë¡¼¥ë¤Ï²¿¤âɽ¼¨¤µ¤ì¤Ê¤¤(²¿¤é¤«¤Îrule¤¬¤¢¤ë¤È¤¤¤¦¤³¤È¤Ïʬ¤«¤ë)
--StateViewer¤Ç¤â¥ª¥×¥·¥ç¥ó»ØÄꤹ¤ì¤Ð»È¤¨¤ë
 a(b(c)), a(d(e)).
 rule @@ a(X) :- uniq(X) | ok(X).
 ok(X) :- uniq(X) | .
 aaaa :- bbbb.
 --->
 @5/[rule"b(c,a):""d(e,a):"][_okXu"b(c,ok):""d(e,ok):"][]

**2010-09-14 [#mf063b27]
***µ×¤·¤Ö¤ê¤Ëuniq [#l004cd49]
-Ëì¤Î¥À¥ó¥×¤Çrulesets¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ï¤Ê¤¯¡¢rule¤¬»ý¤ÄÍúÎò¤ÎÆâÍƤòÁ´¤ÆÆͤùþ¤àÊý¼°¤ËÊѹ¹
--¤·¤¿¤Ä¤â¤ê¡£¥Á¥§¥Ã¥¯¤ÏÌÀÆü°Ê¹ß¡£

**2010-09-10 [#w2567dde]
-hyperlinkÅù²ÁÀ­È½Äê¤Î¥Ð¥°¤ò½¤Àµ
--¡Öconame¤ò»ý¤Äname¡×¤È¡Öconame¡×¤È¤ÎÈæ³Ó¤Ê¤É
--memo : hyperlinkÅù²ÁȽÄê¤Ë´Ø¤ï¤ëÌ¿ÎáÎó
---samefunc
---eq/neqfunc
---eq/neqground

**2010-09-06 [#fa7c5130]
-¤è¤¯¤è¤¯¹Í¤¨¤¿¤é¡¢rank¤Ïname¤Î»Ò¿ô¤Ç¤¢¤Ã¤Æ¡¢Í×ÁÇ¿ô¤È¤Ï°ã¤¦
--Ǥ°Õ¤Î½¸¹ç¤Ë°¤¹¤ëhyperlink¤ÎËÜ¿ô(Èóhyperlink¥¢¥È¥à¤Ø¤ÎÀܳ²Õ½ê)¤ò¿ô¤¨¤é¤ì¤ë¤è¤¦¤Ë¤·¤¿
-ͽÌó¸ìÍѤΥե¡¥ó¥¯¥¿¤¬20¸Ä¤¯¤é¤¤¤¢¤ë¤Î¤Ç¡¢»ÈÍѤǤ­¤ëhlink id¤Ï65536¸Ä¤è¤ê¼ã´³¾¯¤Ê¤¤

**2010-08-31 [#n98c31a5]
-TODO¡§reverse¤ò°ì»þ¥³¥á¥ó¥È¥¢¥¦¥È¤·¤Æ¤ª¤¯

**2010-08-30 [#jd35234c]
-lmn_eq_func¤ËLMN_FUNCTOR_ATTR¤Î¾ì¹çʬ¤±¤òÄɲÃ
--¾¤Ë¤â¾ì¹çʬ¤±Äɲ䷤ʤ­¤ã¤¤¤±¤Ê¤¤½ê¤¬¤¿¤¯¤µ¤ó¤¢¤ë
-½é´ü²½´Ø¿ô¤ÇÁ´¤Æ½é´ü²½¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿¤Î¤òºÇŬ²½¤·¤¿

**2010-08-20 [#a1f6e011]
-coname-coname, name-coname´Ö¤ÎÊ»¹ç½èÍý¤ò¼ÂÁõ
--Èæ³Ó±é»»¤Î½¤Àµ¤Ï¤Þ¤À
-¤½¤í¤½¤íhyperlink¼êÆ°¤Îfindatom¤È¡¢parser¤òÊѹ¹¤·¤ÆƱ¤¸¥×¥í¥»¥¹Ê¸Ì®Ì¾¤¬3²ó°Ê¾å½Ð¸½¤òµö¤¹¡¢ÊÕ¤ê¤Î¸¡Æ¤¤ò

**2010-08-19 [#y5736fa4]
-coname´ÉÍýÊýË¡¤òÊѹ¹
-st_get_entry´Ø¿ô¤ò¼ã´³½¤Àµ
--¥ì¥³¡¼¥É¤Ç¤Ï¤Ê¤¯¥­¡¼¤ò¼èÆÀ¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤¿

**2010-08-18 [#o4b1ca55]
-ºÙ¤«¤Ê½ê¤Ç¥Ð¥°¤¬...
--¥é¥ó¥¯¤ÎºÆ·×»»¤ò½¤Àµ
--coname¤Î´ÉÍýÊýË¡¤ÎÊѹ¹¤ò¸¡Æ¤Ãæ¡¢ÇÛÎó¤è¤ê¥Ï¥Ã¥·¥åɽ¤ÎÊý¤¬¤¤¤¤¤«¤â

**2010-08-13 [#r252930e]
-ȿž½èÍý¡§¥ê¥ó¥¯¤Î·Ò¤®´¹¤¨¤Ç¤ª¤«¤·¤«¤Ã¤¿¤È¤³¤í¤ò½¤Àµ

**2010-08-12 [#c3c1532a]
***LMN_FUNCTOR_ATTR¤È·¿¸¡ºº¤Î·ó¤Í¹ç¤¤ [#b26e6a05]
-new¤Èint¤Ê¤É¤òÁȤ߹ç¤ï¤»¤ë¤È¤ª¤«¤·¤¯¤Ê¤ë
-¤½¤Î¤¦¤Á¤ä¤ë

**2010-08-10 [#w559c845]
-¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°

**2010-08-06 [#xcef2f39]
***Í×ÁÇ¿ô¤Î¼èÆÀ [#zcd1698d]
-Ǥ°Õ¤Îhlink¤¬½ê°¤¹¤ë½¸¹ç¤ÎÍ×ÁǤò¼èÆÀ¤¹¤ë
 a($h) :- $n = num($h) | n($n).
***newÀ©Ìó [#d5b8b5e8]
-0ÆþÎÏÀ©Ìó´ØÏ¢¤Î¥Ð¥°¤ò¼«¸Ê²ò·è
***name-coname¤Îȿž [#m15217fe]
-"-"¤ò¤Ä¤±¤ë¤³¤È¤Ç¥Ü¥Ç¥£¤Çȿž¤Ç¤­¤ë¤è¤¦¤Ë
--name¤«¤éconame¤Ø¤Îȿž¤Ï¡¢coname¤ò»ý¤Ä¾ì¹ç¤Î¤ß²Äǽ
 a(!1). a($h) :- name($h) | a(-$h). 
 ---> a(!-1).


**2010-08-05 [#xcef2f39]
***hyperlinkÀ¸À® [#d5b8b5e8]
-¥¬¡¼¥É¤Ç¤Ï¥·¥ó¥Ü¥ë¥¢¥È¥à¤òÀ¸À®¤·¤Ê¤¤¤È¤¤¤¦SLIM¤Îºî¤ê¤Ë§¤Ã¤Æ¤¤¤¿¤¬¡¢¤½¤ì¤À¤È¼¡¤Î¤è¤¦¤Ê¥¬¡¼¥É¤¬½ñ¤±¤Ê¤¤
 ... :- new(X), Y = setconame(X) | ...
--¥¬¡¼¥É¤Ç¥¢¥È¥àÀ¸À®¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¤Ê¤ê¡¢¤Á¤ç¤Ã¤È¸«Ä¾¤·¤¬É¬Í×

**2010-08-03 [#qb678b4b]
***¥Ü¥Ç¥£¤ÇÊ»¹ç¤Ç¤­¤ë¤è¤¦¤Ë¤·¤¿ [#za11a7d0]
-±é»»»Ò¡§"><"
--name-name, coname-conameÍÑ
--bow tie¤Ã¤Ý¤¯¸«¤¨¤ë
 a($x), b($y) :- $x \= $y | a($x), b($y), $x >< $y.
---name-conameÍѤˤÏ">>","<<"¤¢¤ë¤¤¤Ï"<-","->"¤«¤Ê

**2010-07-30 [#t7e56c54]
***ÏÀÍýÊÑ¿ô¤Î¾õÂÖ [#sc17ebec]
-Ãͤä°À­¤ò»ý¤¿¤Ê¤¤
--¤³¤ì¤ò½é´ü¾õÂ֤Ȥ·¡¢²¼¤Î¤É¤Á¤é¤«¤Î¾õÂ֤˰ܹԲÄǽ
+Ãͤä°À­¤ò»ý¤Ä
+¾¤ÎÊÑ¿ô¤ÈÊ»¹ç¤µ¤ì¤ë
--Ãͤä°À­¤ÎÂå¤ï¤ê¤ËÁê¼êÊÑ¿ô¤Ø¤Î»²¾È¤ò»ý¤Ä
***Attribute variable [#p1d13d13]
-°À­¤Î¼ÂÁõ¤Ï¤É¤¦¤ä¤Ã¤Æ¤¤¤ë¤Î¤«¡¢¤Á¤ç¤Ã¤ÈÄ´¤Ù¤Æ¤ß¤ë




**2010-07-29 [#x9501758]
***coname¤Îunify [#t8c987ce]
-°Û¤Ê¤ëÃͤò»ý¤ÄÊÑ¿ôƱ»Î¤ÎÊ»¹ç¤Ï¼ºÇÔ
-coname¤Î¤ß¤Ç¸ºß¤¹¤ë¤³¤È¤Ï̵¤¤¡¢¤È¤¹¤ë¤Èconame¤ÎÀ¸À®¤Ïname¤¢¤ê¤­¤Î¹½Ê¸¤Ë¤·¤¿¤Û¤¦¤¬¤¤¤¤¤Î¤«

**2010-07-23 [#x9501758]
***hyperlink [#t8c987ce]
-name<->name´ØÏ¢µ¡Ç½¤ÏÂçÂμÂÁõ¤·¤¿...¤«¡©
--Ìڤǽ¸¹ç¤ò´ÉÍý
--rank¤ä¥Ñ¥¹°µ½Ì¤òÍѤ¤¤Æ¿¾¯¤Ï¸úΨÎɤ¤¤è¤¦¤Ë¤·¤Æ¤ß¤¿
-¼¡¤Ïco-name<->name´ØÏ¢¤ò¤Ü¤Á¤Ü¤Á¤È
***co-name [#c06c9830]
-ɬÍפ½¤¦¤ÊÁàºî¤È¡¢¹½Ê¸ÌÑÁÛ
--co-name¤ÎÀ¸À®
---co-name¤òÀ¸À®¤¹¤ë=Âбþ¤¹¤ëname¤¬¤¹¤Ç¤ËÀ¸À®¤µ¤ì¤Æ¤¤¤ë¤Ï¤º¡©
+++(name·¿¤Ç¤¢¤ë&&co-name¤ò»ý¤¿¤Ê¤¤)=>co-nameÀ¸À®¡©
+++name·¿¤Ç¤¢¤ë=>co-nameÀ¸À®=>(co-name2¤Ä°Ê¾å»ý¤Ä=>co-name¤ÎÊ»¹ç)¡©
--name¤¬co-name¤ò»ý¤Ä¤«¤É¤¦¤«¤Î¸¡ºº 
--- a($h) :- hasconame($h) | ...
--- $h¤¬name(hlink)¤Ç¤¢¤ë=>$h¤¬co-name¤ò»ý¤Ä¤«¤É¤¦¤«
--name¤«¤éco-name¤ò¸Æ¤Ó½Ð¤¹
--- a($h) :- getconame($h) | ...
--- $h¤¬name(hlink)¤Ç¤¢¤ë=>$h¤¬co-name¤ò»ý¤Ä=>$h¤Ëco-name¤ò·ë¤Ó¤Ä¤±¤ë
--co-name·¿¸¡ºº
--- a($h) :- coname($h) | ...
--name->co-name¤ÎÊ»¹ç (=co-name¤Î̵¤¤name¤Ëco-name¤ò·ë¤Ó¤Ä¤±¤ë)
--- a($x), b($y') :- $h = $x >> $y' | a($h), b($h).¡¡('ÉÕ¤­¤Ïco-name)
***co-name¤Î°À­¤ò°·¤¦¹½Ê¸ [#obdc1c82]
- (!-1 > 3), (!-2 < 5)¤È¤¤¤¦co-name!-1,!-2¤òÊ»¹ç¤¹¤ë
--and¤Èor¤Î¶èÊ̤ò¤Ä¤±¤é¤ì¤ë¤è¤¦¤Ë¤¹¤ëɬÍפϤ¢¤ë¤«¡©

&br;
-memo
--before
  1: func  !1  200, parent   1, rank   7
  children >>  2  3  5
  2: func  !2  202, parent   1, rank   0
  3: func  !3  204, parent   1, rank   1
  children >>  4
  4: func  !4   23, parent   3, rank   0
  5: func  !5  207, parent   1, rank   3
  children >>  6  7
  6: func  !6  209, parent   5, rank   0
  7: func  !7  211, parent   5, rank   1
  children >>  8
  8: func  !8   25, parent   7, rank   0
  9: func  !9  214, parent   9, rank   1
  children >> 10
 10: func !10  216, parent   9, rank   0
--after 4,8¤«¤éroot¤òõº÷
  1: func  !1  200, parent   1, rank   7
  children >>  2  3  4  5  7  8
  2: func  !2  202, parent   1, rank   0
  3: func  !3  204, parent   1, rank   0
  4: func  !4   23, parent   1, rank   0
  5: func  !5  207, parent   1, rank   2
  children >>  6
  6: func  !6  209, parent   5, rank   0
  7: func  !7  211, parent   1, rank   0
  8: func  !8   25, parent   1, rank   0
  9: func  !9  214, parent   9, rank   1
  children >> 10
 10: func !10  216, parent   9, rank   0


**2010-07-16 [#x9501758]
***[[hyperlink»ÅÍͤޤȤá]] [#udc2bbbf]

**2010-07-15 [#x9501758]
-ÈÉ¥¼¥ßÍѸ½¾õ¥á¥â
-hlinkÍѱ黻»Ò¤¬·è¤Þ¤é¤Ê¤¤
***name, coname [#q04d9db5]
-̾Á°¤Î·è¤áÊý
--name   : "!" + 0,1,2,...
--coname : "!!" + (name¤«¤éµá¤á¤¿¥Õ¥¡¥ó¥¯¥¿id)
-¼ÂÁõÊýË¡°Æ
--¤É¤Á¤é¤â´ðËÜŪ¤Ëº£¤Þ¤Ç¤Î¥Õ¥¡¥ó¥¯¥¿
---°À­ÉÕ¤­ÊÑ¿ô¤òƳÆþ¤¹¤ë¤Ê¤é¡¢
-Âбþ´Ø·¸
--¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Ç´Ø·¸¤òÊÝ»ý¡Ê¿Æ-->»Ò¡¢»Ò-->¿Æ¡Ë
-µ­Ë¡°Æ
-- name-->coname¼èÆÀ
 a($h) :- coname($h) | a(

***hlinkÀ¸À® [#yce62560]
-ËÜÌ¿¡§body¤ÇÀ¸À®
--¥³¥ó¥Ñ¥¤¥éÆɤß+²þ¤Ãæ
-¼¡Á±ºö¤ÎnewÀ©Ìó
 hoge, hoge.
 hoge :- new($h) | a($h), b($h).
 *--> a('!0'), b('!0'), a('!1'), b('!1').

***Ê»¹ç [#v7bef253]
-mergeÍѱ黻»Ò
 a($x), b($y) :- $h = $x =$= $y | a($h), b($h).
--#¤Ê¤Î¤Ï¤¤¤«¤¬¤Ê¤â¤Î¤«

***memo [#fd6bc3d9]
-hlink¤Î¼ÂÁõÊýË¡
--SLIM¤Ç¤Ï¥¬¡¼¥É¤Çsymbol¥¢¥È¥à¤òÀ¸À®½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿
--Ä̾ï¤Î(symbol)¥¢¥È¥à¤È¤·¤Æ̾Á°¤ò¤Ä¤±¤ë¤«
--¥Ç¡¼¥¿¥¢¥È¥à¤Î°ì¼ï¤È¤¹¤ë(ñ¤Ê¤ë¿ôÃÍ)¤«
---Attr¤ËhlinkÍѤΰÀ­¤ò¿·¤¿¤ËÍÑ°Õ¤¹¤ë¤«

**2010-07-09 [#x9501758]
*** JFlex.jar¤Èjava_cup.jar [#b8365df3]
-java_cup.jar¤ÎÊý¤Ïsrc/compiler/parser/¤Ë°ÜÆ°¤·¤Æ¼Â¹Ô¤·¤Ê¤¤¤È¡¢parser.java¤¬Àµ¤·¤¤¥Ç¥£¥ì¥¯¥È¥ê¤ËÀ¸À®¤µ¤ì¤Ê¤¤¤ß¤¿¤¤

***"=="±é»»»Ò [#m8288f9b]
-'=='¤òunary·¿Æ±»Î¤ÎÈæ³Ó±é»»»Ò¤Ë¤·¤è¤¦¤È¤¤¤¦ÏÃ(cf.ÀèÀ¸wiki)
--'=','\='¤Ïground¡¢'=:=','=\='¤Ïint
--unary¤Înot equal¤Ë´Ø¤·¤Æ(src/compile/GuardCompiler.java, l.363) 

 // .. :- unary(A),A\=B | ..
 //¤Î¾ì¹ç¡¢B¤¬ground¤Ç¹½¤ï¤Ê¤¤¡£A¤¬unary¤Ç¡¢¤«¤ÄB¤¬°Û¤Ê¤ë¹½Â¤¤Î»þ¤ËÈ¿±þ¤¹¤ë¡£
 //¤³¤ÎÅÀ¤Ï¡¢==¤È¤Ï°ã¤¦¡£==¤Î¾ì¹ç¡¢¤½¤â¤½¤âƱ¤¸·¿¤Ç¤Ê¤±¤ì¤Ð¥Þ¥Ã¥Á¤·¤Ê¤¤¤¿¤á¡£
 //B¤¬unary¤Î»þ¤Ë¸ÂÄꤷ¤¿¤±¤ì¤Ð¡¢unary(B)¤ò½ñ¤­²Ã¤¨¤ì¤Ð¤è¤¤¡£
 //(²¿¤â¹Í¤¨¤º¤Ë¼ÂÁõ¤·¤¿¤é¤½¤¦¤Ê¤Ã¤¿¤Î¤À¤¬¡¢·ë²ÌŪ¤Ë°ìÈÖ½ÀÆð¤Çľ´¶Åª¤Ê·Á¤À¤È»×¤¦¡£)
-¼ÂÁõÊѹ¹¸å¤ÎÃæ´ÖÌ¿ÎáÎó
 a($x), b($y) :- $x == $y | ...
 -------------------------------------------------------------
 --guard:L118:
	spec           [3, 5]
	derefatom   [3, 1, 0]
	isunary        [3]
	derefatom   [4, 2, 0]
	isunary        [4]
	samefunc       [3, 4]
	jump           [L103, [0], [1, 2, 3, 4], []]


***hlink¤Îmerge [#f1b7a60c]
-Ê»¹ç¤Ï¤É¤¦¤¤¤¦¾õ¶·¤Ç»È¤¦¤À¤í¤¦¤«
--$x,$y¤¬°Û¤Ê¤ë½¸¹ç¤Ë°¤·¤Æ¤¤¤ì¤ÐÊ»¹ç¤¹¤ë¡¢¤È¤¤¤¦¥ë¡¼¥ë¤Ï³ä¤È½ñ¤­¤½¤¦
-mergeÈǤÈ'=='/3±é»»»ÒÈǤǽñ¤¤¤Æ¤ß¤ë

   a($h1), b($h2) :- merge($h1, $h2) | a($h1), b($h2).
   a($x), b($y) :- $x \= $y, $h = $x == $y | a($h), b($h).

-'=='ÈǤÎÊý¤¬LMNtal¤Ã¤Ý¤¤µ¤¤Ï¤¹¤ë
--¤¿¤À¡¢'=='ÈǤÀ¤È¤³¤¦¤¤¤¦¥ë¡¼¥ë¤â½ñ¤±¤ë¤³¤È¤Ë¤Ê¤ë

   a($x), b($y) :- $h = $x == $y | a($h), b($h).

-¤³¤Î¾ì¹ç¡¢$x,$y¤¬´û¤ËÊ»¹ç¤µ¤ì¤Æ¤¤¤è¤¦¤¬¹½¤ï¤ºÊ»¹ç¤¹¤ë¥ë¡¼¥ë¤Ë¤Ê¤ë
-''´û¤ËƱ¤¸½¸¹ç¤Ë°¤·¤Æ¤¤¤ëhlinkƱ»Î¤òÊ»¹ç¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ï¤É¤¦¤Ê¤ë¤Î¤«¡©''
-mergeÀ©Ìó¤Ï¡Ö´û¤ËÊ»¹ç¤µ¤ì¤Æ¤¤¤ëhlinkƱ»Î¤ò°ú¿ô¤Ë»ý¤Ä¤ÈFALSE¡×¤È¤¤¤¦¡¢À©Ìó¤ÎÍͤÊÌò³ä¤ò»ý¤¿¤»¤ë¤è¤¦¤Ë¤·¤Æ¤¢¤ë
--%%¤¿¤À¡¢¥Ç¡¼¥¿¹½Â¤¾å¤Ï¥°¥é¥Õ¤Î½ñ´¹¤¨¤¬µ¯¤³¤é¤Ê¤¤¤Î¤Ë¡¢Ê»¹çÁàºî¤Ç;·×¤Ê¾õÂÖÁ«°Ü¤¬À¸¤¸¤ë¤Î¤Ï¤¢¤Þ¤ê¤¦¤ì¤·¤¯¤Ê¤¤¤«¤â%%´Ö°ã¤¤¡¢hlink¤ÎÊ»¹çÁ°¤ÈÊ»¹ç¸å¤ÏÊ̤ξõÂÖ¤À¤«¤é1¥¹¥Æ¥Ã¥×¤«¤«¤Ã¤Æ¤â¤¤¤¤¤Î¤«¡¢¤Þ¤¡¤½¤ì¤¬mergeÀ©Ìó¤ò¿ä¤¹·è¤á¼ê¤Ë¤Ï¤Ê¤é¤Ê¤¤¤¬
-Ʊ¤¸½¸¹ç¤Ë°¤¹¤ëhlinkƱ»Î¤ÎÊ»¹ç¤Î°ÕÌ£¤ò·è¤á¤Æ'=='¤Ë¤·¤¿Êý¤¬¤¤¤¤¤«¤â¤·¤ì¤Ê¤¤

**2010-07-08 [#x9501758]
***hlink·¿ [#f1b7a60c]
-´ðËÜŪ¤Ë¤Ï(¥×¥í¥°¥é¥à¾å¤Ï)unary·¿
--¥Õ¥¡¥ó¥¯¥¿¤ÎºÇ½é¤Î3ʸ»ú¤¬"$hl"¤Ç¤¢¤ë¡Ê¤«¤Ä¿Æ¥Õ¥¡¥ó¥¯¥¿¤Ø¤Î¥¢¥É¥ì¥¹¤ò»ý¤Ä¡Ë
---root¥Õ¥¡¥ó¥¯¥¿¤Ï¿Æ¥Õ¥¡¥ó¥¯¥¿=¼«¿È¤Î¥¢¥É¥ì¥¹
---¾¤ÎÄ̾ï¥Õ¥¡¥ó¥¯¥¿¤Ï¿Æ¥Õ¥¡¥ó¥¯¥¿=NULL
---¤¢¤ë¤¤¤Ïñ½ã¤Ëroot(Èóhlink·¿´Þ)¥Õ¥¡¥ó¥¯¥¿¤ÏNULL¤Ç¤â¤¤¤¤¤Î¤«¤â
-¾¤Î·¿¤È¤Î´Ø·¸¤Ï¤³¤ó¤Ê´¶¤¸¡©
 hlink ¢¾ unary ¢¾ ground
 hlink ¡â data(int, double, ...)
-¥¬¡¼¥ÉÀ©Ìó¡¢°ì±þºî¤Ã¤Æ¤ß¤¿
 hlink(X) : hlink·¿¸¡ºº
 newhl(X) : hlink atomÀ¸À®¡¢Ãæ´ÖÌ¿ÎáÎó¤ÏºòÆü¤Îhlink¤È°ì½ï
            hlink·¿¤À¤ÈŬÍѤ·¤Ê¤¤(not_hlink¸¡ºº)¤ÎÌò³ä¤â»ý¤Ä
***Ê»¹ç [#jc2fc545]
-¥·¥¹¥Æ¥à¥ë¡¼¥ë¥»¥Ã¥È¤Ç¹Ô¤Ê¤¦ÊýË¡¡¢±é»»»Ò"=="
--¥ë¡¼¥ëŬÍѤΥ¿¥¤¥ß¥ó¥°¤Ç¡¢¥æ¡¼¥¶¤Î»×¤¤Ä̤ê¤Ë¤¤¤«¤Ê¤¤¤³¤È¤¬¤¢¤ë¡¢µÑ²¼ 
-¥Ü¥Ç¥£¤Ç¹Ô¤Ê¤¦ÊýË¡¡¢±é»»»Ò¤Ï"=="¤Ë¤·¤è¤¦¤«¤Ê
 a($h1), b($h2) :- 
   hlink($h1), hlink($h2) | a($h1), b($h2), $h1==$h2.
--unify("=")¤Î¤è¤¦¤Ë¡¢Ãæ´ÖÌ¿ÎáÎó¤òÊѤ¨¤ë¤«¡¢¼ÂÁõ¤¬¾¯¤·ÌÌÅÝ
--²Ã¤¨¤Æ¡¢Ê¬»Ò'=='($h1,$h2)¤¬¼«Æ°Åª¤Ë¾Ãµî¤µ¤ì¤ë¡¢¤Á¤ç¤Ã¤ÈÉÔ¼«Á³¡©
---¤µ¤é¤ËÌäÂê¡¢¾å¤Î¥ë¡¼¥ë¤Ï̵¸Â¥ë¡¼¥×¤¹¤ë
-¥¬¡¼¥É¤Ç¹Ô¤Ê¤¦ÊýË¡¡¢Î㤨¤ÐmergeÀ©Ìó¤È¤«
 a($h1), b($h2) :- merge($h1, $h2) | a($h1), b($h2).
--Ê»¹çÁàºî¤Ï¡¢Ê»¹ç¤¹¤ë¥Õ¥¡¥ó¥¯¥¿¤Î̾Á°¤À¤±¼èÆÀ¤Ç¤­¤ì¤Ð¤è¤¤
--¥Ü¥Ç¥£¤Çʬ»Ò¤òÉÔ¼«Á³¤Ë¾Ã¤µ¤Ê¤¯¤ÆºÑ¤à¾å¤Ë¡¢¼ÂÁõ¤â³Ú
---´û¤ËÊ»¹ç¤µ¤ì¤Æ¤¤¤ë½¸¹ç¤Ë°¤¹¤ëhlinkƱ»Î¤Ï·ë¹ç¤Ç¤­¤Ê¤¤¡¢¤È¤«¤Ë¤¹¤ì¤Ð̵¸Â¥ë¡¼¥×¤âËɤ²¤ë
--¤¿¤À¥¬¡¼¥ÉÀ©Ìó¤¬Áý¤¨²á¤®¤Êµ¤¤â¤¹¤ë

***Åù²ÁȽÄê(naive) [#ea1cd4b3]
 /* $h1, $h2¤É¤Á¤é¤«°ìÊý¤Ëhlink(unary)¥Á¥§¥Ã¥¯¤ò»Ü¤¹ */
 a($h1), b($h2) :- 
   hlink($h1), $h1==$h2 | a($h1), b($h2).
-Åù²ÁȽÄê(optimize)¤ÏÃæ´ÖÌ¿ÎáÎó¤òÊѹ¹¤·¤Ê¤¤¤ÇSLIM¦¤À¤±¤Ç²Äǽ¤«¤Ê¡©¤¦¡¼¤ó¤è¤¯¹Í¤¨¤Ê¤¤¤È


***hyper link for nd [#g112f39b]
-¤È¤ê¤¢¤¨¤ºÊüÃÖ¤·¤¿¤¤¡¢¤ä¤ë¤Ê¤é¾õÂÖ¤´¤È¤Ë¥Õ¥¡¥ó¥¯¥¿¤Î¿Æ»Ò´Ø·¸´ÉÍý¤ò¤µ¤»¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤«¤Ê

**2010-07-07 ¤½¤Î£²[#ua4377c7]
-hlink·¿À©Ìó¤ÏɬÍפ«¤Ê
 hlink atomÀ¸À®  : newhl($h)¡¡¤ËÊѹ¹
 hlink·¿¥Á¥§¥Ã¥¯ : hlink($h)  ¤È¤«?
--unary·¿¥Á¥§¥Ã¥¯¤ÎÃæ¤Ç̵Íý¤ä¤êhlink¤ò¼±Ê̤¹¤ë¤³¤È¤Ï¤Ç¤­¤ë
-¸½ºß¡¢BODY¤Ç¤Î"="¤È"=="¤Ï¶¦¤Ëeqground
--"=="¤òhl¥¢¥È¥àÀìÍѤˤ¹¤ë¡©
 ... :- unary(X), unary(Y), X==Y | ...
 -------------------------------------
  derefatom   [5, 3, 0]
  isunary        [5]
  derefatom   [4, 2, 0]
  isunary        [4]
  samefunc       [5, 4]
**2010-07-07 [#ua4377c7]
-°Ê²¼¡¢Ì¤¥³¥ß¥Ã¥È
***hyper link atom À¸À®[#r585d88f]
-¥³¥ó¥Ñ¥¤¥é¦
--hlinkÀ©Ìó
--- hyper link atom (hl¥¢¥È¥à) : ¥¢¥È¥à̾($hl + ID)¤ò»ý¤Ä1°ú¿ô¥¢¥È¥à
 a($h) :- hlink($h) | b($h).
 ------------------------------------------
 if ($h == hl¥¢¥È¥à) {
   ¥ë¡¼¥ëŬÍѼºÇÔ
 } else {
   $h¤«¤éµá¤á¤¿ID¤ò¤â¤Ähl¥¢¥È¥à¤òÀ¸À®
 }
---hyperlinkÍÑÃæ´ÖÌ¿Îá
 /** hyperlink [atom, mem]
  * $mem¤Ë½ê°¤¹¤ë$atom¤òhyperlink atom¤ËÃÖ¤­´¹¤¨¤ë
  */

-SLIM¦
--¤æ¤¯¤æ¤¯¤Ïhl¥¢¥È¥à¤òdata¥¢¥È¥à(¤Îspecial¥¢¥È¥à?)¤Ë¤·¤Æ½èÍý¤ò´Êñ¤Ë¤·¤¿¤¤¤È¤³¤í
--¥Õ¥¡¥ó¥¯¥¿¤òUnionFind¤Î¤è¤¦¤Ë¿Æ»Ò´Ø·¸¤ò»ý¤¿¤»¤ë¤è¤¦¤Ë¤·¤¿
---»î¤·¤ËsamefuncÌ¿Îá¤ÎÃæ¤Çhl¥¢¥È¥à¤ÎÈæ³Ó¤À¤±Ê̤νèÍý¤ò¤µ¤»¤ë¤è¤¦¤ËÊѹ¹
---¿Æ»Ò´Ø·¸¤òÈ¿±Ç¤·¤¿Åù²ÁȽÄ꤬¤Ç¤­¤¿
 a(X), b(Y) :- unary(X), unary(Y), X==Y | .


-memo
--Instruction.java
--GuardCompiler.java

**2010-07-05 [#ua4377c7]
-memo
--hylink atom¤Ïint·¿¤¸¤ã¤Ê¤¤¤«¤é==¤Îξ°ú¿ô¤Ë»ØÄꤷ¤Æ¤âÂç¾æÉ×

**2010-07-01 ¤½¤Î2[#ua4377c7]
***ÈÉ¥¼¥ß [#g07cbc9e]
-hylink¤ÎÀ¸À®¤Ï¥¬¡¼¥É¤Ç
--°ìÅٹͤ¨¤Æ¡¢¤ª¤«¤·¤¤¤È»×¤Ã¤Æ¤¿¤±¤É¡¢³Î¤«¤Ë+¤ä-¤ò¥¬¡¼¥É¤Ç¤·¤Æ¤ë¤«



**2010-07-01 [#ua4377c7]
***hyper link [#b198ff41]
-(ºÆ·Ç)
++hylink¤ò¿·µ¬À¸À®
++2¤Ä¤Îhylink¤ÎÅù²ÁÀ­È½Äê
++»ØÄꤷ¤¿hylink¤Î½Ð¸½¤ÎÎóµó
++»ØÄꤵ¤ì¤¿hylink¤Ë·Ò¤¬¤ë¥¢¥È¥à¤Î(¸úΨŪ)õº÷
++hylinkƱ»Î¤ÎÊ»¹ç
-¶âÍˤ«¤é¿Ê¤ó¤À¤È¤³¤í¤Þ¤Ç
--1¡¢5¤ò¥·¥¹¥Æ¥à¥ë¡¼¥ë¥»¥Ã¥È¤Ç
-1. ¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¥¢¥È¥à(²¾)¤ÎÀ¸À®
 a(hL(abc)), b(hL(1)).  
 <==> a('$hL62'). b('$hL236').
--%%º£¤Î¤È¤³¤ícallback´Ø¿ô»ÈÍÑ%%¥·¥¹¥Æ¥à¥ë¡¼¥ë¥»¥Ã¥È¤Ë¤Æ
--62, 233¤ÏhL(N)¤ÎN¤òlmn_intern¤ËÅꤲ¤ÆÆÀ¤é¤ì¤ëÃÍ
-5. ¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤ÎÊ»¹ç
 // '$hL'(HYLINK1, HYLINK2) : HYLINK1¤È2¤¬Ê»¹ç¤µ¤ì¤ë
 a('$hL61'). b('$hL236'), '$hL'('$hL61', '$hL236').
 {b('$hL236')}.
 <==> a('$hL61'). b('$hL61'), {b('$hL61')}.
--¥·¥¹¥Æ¥à¥ë¡¼¥ë¥»¥Ã¥È 
---hylink_unify : $hL_2¤Ë·Ò¤¬¤Ã¤¿¥¢¥È¥à¤Î¥Õ¥¡¥ó¥¯¥¿¤òµ­²±
---hylink_unify2: µ­²±¤·¤¿¥Ú¥¢¤ÎÊ»¹ç¤ò¸½ºßËì+»Ò¹ËìÁ´¤Æ¤ËÂФ·¤Æ¹Ô¤Ê¤¦
-¤â¤í¤â¤í¤Îµ­Ë¡¤ò¤½¤í¤½¤í·è¤á¤Æ¤¤¤­¤¿¤¤¤È¤³¤í
--¿·µ¬À¸À®¡§hL¤Ç¤¤¤¤¤Î¤«¡¢°ú¿ô¤Ï¼è¤ë¤«
---¥ê¥ó¥¯Ì¾¤Ê¤é¤Ì¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯Ì¾¤ÏÂåɽÍ×ÁǤǤ¤¤¤¤È¤¹¤ë(°ú¿ô¤ò¼è¤é¤Ê¤¤)¤È¡¢ÂåɽÍ×ÁǤÎ̵¤¤hylink(¤Ä¤Þ¤ê̵¸þ)¤Ï̵̾¤·¤Î¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯(ÆâÉôŪ¤Ë¤Ï°ì°Õ¤Îid¤Ê¤ê¤¬ÉÕ¤¯)¤Ë¤Ê¤ë
 a(hL) <==> a('$hL0') ¤È¤«?

--Ê»¹ç¡§hylinkƱ»Î¤òÀܳ¤¹¤ë¤ï¤±¤À¤«¤é¡¢=¤¬¼«Á³¡©
---unifylinksÌ¿Îá
 $hL = $hL
--hylink¤ÎÈæ³Ó
 a($p), b($q) :- $p = $q | ...
 a($p), b($p) :- ...  
---¾å¤ÎÊý¤òºÎÍѤ·¤Æ¡¢¥Þ¥Ã¥Á¥ó¥°ºÇŬ²½¤Ë¤Ä¤¤¤Æ¤ÏÆâÉô¤Ç´èÄ¥¤é¤»¤ëÊý¤¬¤¤¤¤¤Î¤«¤â
--¤æ¤¯¤æ¤¯¤Ï°À­ÉÕ¤­ÊÑ¿ô¤òɽ¸½¤¹¤ë(¤·¤¿¤¤)
---°À­¤Î¾ðÊó¤Ï³¬ÁؤË°¤¹¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¤È»×¤¦
---°À­¤òɽ¤¹¥¢¥È¥à¤ò¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¥¢¥È¥à(²¾)¤ËľÀÜ·Ò¤²¤ë¤ä¤êÊý¤Ï¤Á¤ç¤Ã¤È̵Íý¤¬¤¢¤ë¤«¤Ê

**2010-06-28 [#ua4377c7]
-ÂÎÄ´°­¤¤
***¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯ [#gd97d977]
-5.Á´¤Æ¤ÎËì¤ËºîÍѤ¹¤ë¥·¥¹¥Æ¥à¥ë¡¼¥ë¥»¥Ã¥È¤ò½ñ¤¤¤Æ¤ß¤¿
--hylink¤Îunion¤òɽ¸½¤Ç¤­¤ë

**2010-06-25 [#ua4377c7]
***¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯ [#gd97d977]
-¾åÅÄÀèÀ¸¤È¤Î¸ÄÊÌ¥¼¥ß¤ò¸Ä¿ÍŪ¤ËÀ°Íý¤·¤Æ¤ß¤ë
--hylink(¤«¤Ã¤³¤¤¤¤¤«¤é¡Ö¥Ï¥¤¥Ñ¡¼¡×¤Ã¤Æ¸À¤¤¤¿¤¤µ¤¤â¤¹¤ë)
-¼ÂÁõÊýË¡¤è¤êÀè¤Ë¤É¤¦¤¤¤¦µ¡Ç½¤ò»ý¤Ä¤Î¤«
--(³ÈÄ¥)unary¥¢¥È¥à¤Çɽ¸½¤¹¤ë¤È¤·¤Æ¤Þ¤È¤á¤ë
---¥¢¥È¥à¤¬Ìܤ˸«¤¨¤Ê¤¤(Ãê¾ÝŪ¤Ê)·Á¤Ç¸ß¤¤¤ËÀܳ¤·¹ç¤Ã¤Æ¤¤¤ë
---¤Ä¤Þ¤ê¡¢º£¤Þ¤Ç¤ÎÍͤËËì¤Çɽ¤¹¤È
 a($h), b($h) :- ... .
 <==> a(H1), b(H2), h{+H1, +H2} :- ... .
-µ¡Ç½
++hylink¤ò¿·µ¬À¸À®
 a(newhl), b(newhl) 
 --(ÆâÉôŪ¤Ë)--> a(hyperlink0), b(hyperlink0). ¤È¤«
++2¤Ä¤Îhylink¤ÎÅù²ÁÀ­È½Äê
 a($p), b($q) :- $p = $q | a($p), b($p). ¤È¤«
++»ØÄꤷ¤¿hylink¤Î½Ð¸½¤ÎÎóµó
++»ØÄꤵ¤ì¤¿hylink¤Ë·Ò¤¬¤ë¥¢¥È¥à¤Î(¸úΨŪ)õº÷
---unaryÊý¼°¤½¤Î¤Þ¤Þ¤Ç¤Ï¥Þ¥Ã¥Á¥ó¥°¸úΨ²½¤Ï¼Â¸½¤Ç¤­¤Ê¤¤
---ŬÀڤʺ÷°ú(index)¹½Â¤¤Ê¤ó¤«¤¬¤¢¤ë¤È¤è¤¤
++»ØÄꤵ¤ì¤¿hylinkƱ»Î¤ÎÊ»¹ç(merge, union)
---¥·¥¹¥Æ¥à¥ë¡¼¥ë¥»¥Ã¥ÈŪ¤Ê¤â¤Î¤ÇÊ»¹ç¸µ¤Î¥¢¥È¥à¤òÊ»¹çÀè¤Î¥¢¥È¥à¤Ë½ñ¤­´¹¤¨¤ë
-ºÇû¤Î¼ÂÁõ¤ò¹Í¤¨¤¿¤È¤­¡¢¤Þ¤º¤É¤ì¤ò¤ä¤ë¤«
--1. 5. 

**2010-06-24 [#ua4377c7]
***hylink¡¢SLIM¦¤Î¤ß¤Ç¤ä¤ë¾ì¹ç [#sb68811e]
-¼Â¸½ÊýË¡¤¬¤¤¤¯¤Ä¤«¤¢¤ë(1-3¤ÏËì¤ò»È¤¦)
++¥·¥¹¥Æ¥à¥ë¡¼¥ë¥»¥Ã¥È¡¢¥â¥¸¥å¡¼¥ë¤ÇºÑ¤Þ¤»¤ë
 a(!p) :- a(HL), {name(p), +HL}.
---!¤òÉÕ¤±¤ë¤Î¤Ï¥¢¥È¥à¤Ê¤Î¤«¥ê¥ó¥¯¤Ê¤Î¤«
++Ãæ´ÖÌ¿ÎáÎó¤ÎÊÑ´¹
 		findatom    [1, 0, 'a'_1]
		deref       [2, 1, 0, 0]
		func           [2, '!p'_1]
---funcÌ¿Îá¤ò¡¢Ëì¤ò»È¤Ã¤¿¹½Â¤¤òõ¤·¤Æ¤¯¤ëÌ¿ÎáÎó¤ËÊÑ´¹¤¹¤ë¤È¤«
++¿·Ãæ´ÖÌ¿Îá
---2¤Ï¸½¾õ¤ÎÌ¿ÎáÎó¤ò³èÍÑ¡¢3¤ÏhylinkÍѤÎÌ¿ÎáÎó¤È¤·¤Æ¤Þ¤È¤á¤Æ¤·¤Þ¤¦
++¿·¥Ç¡¼¥¿¹½Â¤¤ÎÄɲÃ
---ÍͻҤò¸«¤Ê¤¬¤é

***¤½¤Î¾ [#gb15805e]
-µ¤¤¬Áᤤ¤¬¡¢!µ­Ë¡¤òÆþ¤ì¤ë¤Ê¤é»²¹Í¤Ë
--Flex[[¤³¤ì:http://www.geocities.co.jp/SiliconValley-Oakland/3432/man/flex/flex-ja_3.html#SEC14]]¤È[[¤³¤ì:http://guppy.eng.kagawa-u.ac.jp/2007/ProgLang/flex.html]]
 LinkName [A-Z_][a-zA-Z_0-9]  ==> "!"?[A-Z_][a-zA-Z_0-9]
-Ãæ´ÖÌ¿ÎáÎóį¤á¤ë
-- link @@ a(X), b(X) :- c(X), d(X).
	--memmatch:
		spec           [1, 3]
		findatom    [1, 0, 'a'_1]
		deref       [2, 1, 0, 0]
		func           [2, 'b'_1]
		jump           [L103, [0], [1, 2], []]
--hlink @@ a(X), b(Y), {+X, +Y, $p} :- c(X), d(Y), {+X, +Y, $p}.
	--memmatch:
		spec           [1, 10]
		findatom    [1, 0, 'a'_1]
		deref       [2, 1, 0, 1]
		func           [2, $out_2]
		deref       [3, 2, 0, 0]
		func           [3, $in_2]
		deref       [5, 3, 1, 0]
		func           [5, '+'_1]
		lockmem     [4, 3, null]
		norules        [4]
		findatom    [6, 4, '+'_1]
		neqatom        [6, 5]
		deref       [7, 6, 0, 1]
		func           [7, $in_2]
		deref       [8, 7, 0, 0]
		func           [8, $out_2]
		deref       [9, 8, 1, 0]
		func           [9, 'b'_1]
		jump           [L136, [0, 4], [1, 9, 8, 2, 5, 6, 7, 3], []]

-hlink¡¢Ã±¤Ê¤ëÌÑÁÛ
 a(!P), b(!P), c(!P), !-P = 3.
--"!P"¤Ï¤Ê¤ó¤«Ë¿¥¨¥ì¥­¥Ð¥ó¤ò»×¤¤½Ð¤µ¤»¤ë
//-- a(!P), b(!P). ¤ÎÃæ´ÖÌ¿Îá
//	--memmatch:
//		spec           [1, 3]
//		findatom    [1, 0, 'a'_1]
//		hlderef       [2, 1, 0, 0]
//		func           [2, 'b'_1]
//		jump           [L103, [0], [1, 2], []]
//
&br;
-uniq for nd
--¤¤¤¯¤Ä¤«¤ÎÎã¤òÆ°¤«¤·¤Æ¤ß¤¿¤¬¡¢¤ª¤«¤·¤Ê¤È¤³¤í¤Ï¤Ê¤µ¤½¤¦
--¤¿¤À¾¤Ëϳ¤ì¤¬Ìµ¤¤¤«ÉÔ°Â

&br;
-¥ë¡¼¥ëʸ̮
--¥Ø¥Ã¥É¤Ë¥ë¡¼¥ëʸ̮2¸Ä½ñ¤¯¤È¥ë¡¼¥ë¥»¥Ã¥È½¸¹ç¤Ë2½Å¤Ë¥Þ¥Ã¥Á¥ó¥°¤¹¤ë»ö¤Ë¤Ê¤ë¤Î¤«¡¢ÃΤé¤Ê¤«¤Ã¤¿
 {rule1 @@ a:-b.}. {rule2 @@ c:-d.}.
 {@p}, {@q} :- r{@p, @q}. //2¤Ä¤ÎËì¤ò·ë¹ç
 r{@p, @q} :- @p, @q. 
 *---> @5,@5,@6,@6,@7


**2010-06-23 [#ua4377c7]
***»þ´Ö·×¬ÍÑcallback´Ø¿ô [#na5be7b1]
-&ref(timer.c);
-ÄɲäλÅÊý¡§[[SLIM callback´ØÏ¢ ¥á¥â]]
-Ãæ¿È
 /* get_time function */
 
 # include <time.h>
 # include "../lmntal_ext.h"
 
 
 void gettime(ReactCxt rc,
                   LmnMembrane *mem,
                   LmnAtom a0, LmnLinkAttr t0)
 {
   double *t = LMN_MALLOC(double); 
 
   *t = (double)clock() / CLOCKS_PER_SEC;
 
   lmn_mem_newlink(mem,
                   a0, LMN_ATTR_MAKE_LINK(0), LMN_ATTR_GET_VALUE(t0),
                   (LmnWord)t, LMN_DBL_ATTR, 0); 
 
   lmn_mem_push_atom(mem, (LmnWord)t, LMN_DBL_ATTR);
 
 }
 
 void init_timer(void)
 {
   lmn_register_c_fun("gettime", gettime, 1);
 }
-¼Â¹ÔÎã(b¤Ø¤Î²Ã»»¤Ë¤«¤«¤ë»þ´Ö¤Î¤ß¬¤ë)
 a(0).
 a(A) :- A<500000, A1=A+1 | a(A1).
 a(500000) :- b(0), '$callback'(gettime, start).
 b(B) :- B<500000, B1=B+1 | b(B1).
 b(500000) :- '$callback'(gettime, end).
 end(X), start(Y) :- Z=X-.Y | time(Z).

**2010-06-22 [#ua4377c7]
***uniq for nd [#l9939c62]
-Ëì¤Î¥À¥ó¥×(--nd)¤ËÂбþ¤·¤¿¡¢µ¤¤¬¤¹¤ë
--Ë줬»ý¤Ä¥ë¡¼¥ë¥»¥Ã¥ÈÇÛÎó¤ò¥Ð¥¤¥Ê¥ê¥¹¥È¥ê¥ó¥°¤Ë½ñ¤­¹þ¤ó¤Ç¤¤¤ë
--- membrane.h¤Ë¥´¥ß¤¬Æþ¤Ã¤Æ¤ë¤è!(gocho)
  atomlist_gelmn_mem_get_rulesett_record
--- ËÜÅö¤Ë¡¢¿½¤·(ά)
--mem-enc¤ËÂбþ¤µ¤»¤ë¤Ê¤éÍúÎòɽ¤ÎÃæ¿È¤òÁ´Éô½ñ¤­¹þ¤Þ¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤«¤â

-ȯɽ»ñÎÁ
--³µÍפΤ¢¤È¤Ëȯɽ¤Îή¤ì¤òÃÖ¤¯¤Î¤âÃ桹¤¤¤¤¤«¤â

**2010-06-21 [#ua4377c7]
-Î×»þÈÉ¥¼¥ß
--hyper link¡¢flatLMNtal¤òÂоݤˤ¹¤ëÊý¸þ¤Ç

**2010-06-20 [#ia80b02d]
-callback´Ø¿ô³«È¯¥á¥â
--rev349_2¤ò¥Æ¥¹¥ÈÍѤË

**2010-06-16 [#ia80b02d]
-SWI-Prolog¥á¥â
 -L0 : local stack no limit
 -G0 : global stack ...
-½Û´Ä¥°¥é¥Õ¤òÀ¸À®¤·¤Æ°ì¼þé¤ë¡¢¤â¤¦¤Á¤ç¤Ã¤ÈºÙ¤«¤¯
|N|1000|2000|4000|5000|6000|7000|8000|h
|atom|0.02|0.02|0.05||||0.08|
|mem|0.06|0.14|0.47|0.92|1.65|2.84|4.89|


**2010-06-15 [#ia80b02d]
***¥¼¥ßȯɽ½ªÎ» [#o678b52e]
-¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£
-Ëì¤òhlink¤È¤¹¤ë¤È¡¢¤É¤³¤«¤Î³¬ÁؤË°¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î¤Ç¤Ï
--¤É¤³¤Î³¬Áؤˤâ°¤µ¤Ê¤¤¡¢¤«¤Ä¼«Í³¤Ë»²¾È¤Ç¤­¤ë¤è¤¦¤Ê²¿¤«¤¬¤¢¤ë¤È¤¤¤¤
--¥Û¥ó¥È¤Ïint·¿¤È¤«¤â¤É¤³¤«¤Ë°¤·¤Æ¤¤¤ë¤³¤È¤Ï˾¤Þ¤·¤¯¤Ê¤¤
-"-"¤Î̵¤¤¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤Ï¤¢¤ó¤Þ¤¤¤é¤Ê¤¤¤ó¤¸¤ã?
--¥Î¡¼¥ÉÈֹ椬¤¢¤ë¥°¥é¥Õ¤ÏËܼÁŪ¤Ë¤¦¤ì¤·¤¯¤Ê¤¤
--Ãê¾Ý²½¤Î¤¿¤á¤Ë¤Ï¤¤¤¤¤«¤â¤·¤ì¤Ê¤¤
-ºÇŬ²½¡¢¤È¤¤¤¦Â¦Ì̤«¤é¤Ê¤é¤â¤Ã¤È½èÍý·ÏÆâÉô¤ò¤¤¤¸¤Ã¤¿¤Û¤¦¤¬¸ú²Ì½Ð¤ë
--¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤ä¤ë°ÕµÁ¤ò¤â¤¦¤Á¤ç¤Ã¤È¹­¤¯¿¼¤¯¹Í¤¨¤Ê¤±¤ì¤Ð



**2010-06-11 [#y0d8265f]
***ºòÆü¤ÎÈÉ¥¼¥ß¥á¥â [#gdbd6f02]
-¿Âп¡¢¤È¤¤¤¦É½¸½¤Ï¤Ê¤ó¤«¤ª¤«¤·¤¤
-+¤ÎÊý¤ò¥Ç¥Õ¥©¥ë¥È¤Ë¤·¤Æʸ»ú¿ô¸º¤é¤¹¤È¤«
-³¬ÁØ̵»ë¤ÇºîÍѤ¹¤ë¥ë¡¼¥ë¤¬Ìµ¤¤
-¥ë¡¼¥È¤«¤é¤Î¥×¥í¥­¥·¥¢¥È¥à¤Î¥Ä¥ê¡¼¤òºî¤ë¤È¤«
-½¸¹ç±é»»¤Îµ¡Ç½¤¬¤¢¤ó¤Þ¤ê¤Ê¤¤¡¢ËìÆâ¤Î¥¢¥È¥à¿ô¤¬Ê¬¤«¤ë¤È¤«

**2010-06-10[#q8663905]
***hyperlink : ÌÑÁÛ [#z4cb9acd]
-Ʊ¤¸¥ê¥ó¥¯Ì¾¤Î3²ó°Ê¾å¤Î½Ð¸½¤òµö¤¹¡¢¤È¤¹¤ë
--=ÆâÉôŪ¤Ë¤Ï·Ú¤¤Ëì¤Çhyperlink¤òɽ¸½¤·¤Æ¤¤¤ë¡¢¤È¤¹¤ë
-¤³¤ÎÆó¤Ä¤Îɽ¸½¤òʬ¤±¤¿¤Û¤¦¤¬¤¤¤¤¤Î¤Ç¤Ï
--a.¿¿ô¤È¿¿ô¤ÎÀܳ´Ø·¸(¿Âп)
--b.¿¿ô¤¬°ì¤Ä¤Î¶¦Ḁ̈ǡ¼¥¿¤ò»²¾È¤·¤Æ¤¤¤ë(¿Âаì)
---b¤Ï¤É¤Á¤é¤«¤È¤¤¤¦¤È¶¦Í­ÊÑ¿ôŪ¤Ê´¶¤¸¡¢¤È¤ê¤¢¤¨¤º¥Ç¡¼¥¿¤ÎÊѹ¹ÊýË¡¤Ï¸å²ó¤·
-¤Þ¤º¤Ï¸½¾õ¤Î(flat¤Ê)LMNtal¤Ç¤Ç¤­¤½¤¦¤Ê¤³¤È¤À¤±

-a. 

 1.
 %Âçʸ»úËì̾¤Ï̵Íý¤À¤±¤É
 a(!+P), b(!+P), c(!+P).  %% a(!P+), a(+!P).
 <==> 
 a(L1), b(L2), c(L3), P{+L1, +L2, +L3}.
 
 2.
 a(!+P), b(!+P), c.
 a(!+X), b(!+X), c :- a(!+X), b(!+X), c(!+X).
 <==>
 a(L1), b(L2), P{+L1, +L2}, c.
 a(L1), b(L2), P{+L1, +L2, $p}, c
   :- a(L1), b(L2), c(L3), P{+L1, +L2, +L3, $p}.
 
 3.
 %a,b¤Èc¤¬Æ±¤¸½¸¹ç¤Ë°¤¹¤ë¤«¤òÄ´¤Ù¤ë
 a(!+P), b(!+P), c(!+Q).
 a(!+X), b(!+X), c(!+Y)
   :- !+X \= !+Y | a(!+X), b(!+X), ok(!+Y).
 <==>
 %_A, _B¤ÏËì̾ÊÑ¿ô¤ß¤¿¤¤¤Ê¤â¤Î¤È¤¹¤ë
 a(L1), b(L2), P{+L1, +L2}, c(L3), Q{+L3}.
 a(L1), b(L2), _A{+L1, +L2, $p}, c(L3), _B{+L3, $q}
   :- _A \= _B | 
   a(L1), b(L2), _A{+L1, +L2, $p}, ok(L3), _B{+L3, $q}.
   %%Èæ³Ó¤Î¸úΨ¤òÎɤ¯¤Ç¤­¤Ê¤¤¤«
 
 9. %ËìÆâ¤Î+¤Î¸Ä¿ô¤ò¥¬¡¼¥É¾ò·ï¤Ë¤¹¤ë
    %java¤Ë¤ÏËìÆ⥢¥È¥à¿ô¤ò¿ô¤¨¤ë¥¬¡¼¥É¤¬¤¢¤ë?
 a(!*P) :- !*P > 3 | ok(!*P).
 <==>
 a(X), _A{+X, $p} 
   :- \+($p=("-", $pp)), atomnum? > 3 | ok(X), _A{+X, $p}
 
-b. -:[0,1]¸Ä, +:[1,inf]¸Ä¤È¤¹¤ë ( -L ¤Ï "-"(L) )

 4.
 %¶¦Í­ÊÑ¿ô¤Ø¤ÎÃͤÎÂåÆþ¡¢¤Î¤è¤¦¤Ê
 a(!+P), b(!+P), !-P = 3.
 <==> 
 a(L1), b(L2), data(3, D), P{+L1, +L2, -D}.
 
 5.
 a(!-X) :- !-X =:= 3 | ok(!-X).
 <==>
 a(X), data(V, Y), _A{+X, -Y, $p} 
   :- V=:=3 | ok(X), data(V, Y), _A{+X, -Y, $p}.
 
   %¤³¤ì¤Ï¤É¤¦¤Ê¤ë¤ó¤À¤í¤¦...
   a(!+X) :- ground(!+X) | ok(!+X).
 
 6.1.
 %¡Ö¤³¤Î¶¦Í­ÊÑ¿ô¤ËÃͤ¬Â«Çû¤µ¤ì¤Æ¤¤¤Ê¤¤¤Ê¤é5¤òÂåÆþ¤¹¤ë¡×
 a(!-X) :- nonvar(!-X), !-X = 5 | a(!-X).
 <==>
 a(L), _A{+L, $p} :- 
   \+($p=("-"(A), $pp)) | a(L), data(5, D), _A{+L, -D, $p}.
 
 6.2.
 %¡Ö¤³¤Î¶¦Í­ÊÑ¿ô¤ËÃͤ¬Â«Çû¤µ¤ì¤Æ¤¤¤Ê¤¤¤Ê¤é5¤òÂåÆþ¤¹¤ë¡×
 a(!-X) :- nonvar(!-X), !-X = 5 | a(!-X).
 <==>
 a(L), _A{+L, $p} :- 
   \+($p=("-"(A), $pp)) | a(L), data(5, D), _A{+L, -D, $p}.
-¤³¤ì¤é¤ò³¬Áع½Â¤¤¬¤¢¤ëÃæ¤Ç¤ä¤ë¤¹¤ë¤È¤³¤ì¤ò¹Í¤¨¤ëɬÍפ¬¤¢¤ë
--c.Ǥ°Õ³¬Áؤ«¤éÅù¤·¤¯»²¾È¤Ç¤­¤ë(¥ë¡¼¥ë¤ÇÁàºî¤Ç¤­¤ë)
---°ìÈÖ¤ä¤Ã¤«¤¤¤«¤Ê
-c.

 7.
 a(!+P), {b(!+P)}, !-P = 3.
 <==>
 a(L1), {b(L2)}, data(3, D), P{+L1, +L2, -D}.
 
 %b¤¬¤¢¤ëËìÆâ¤Ç
 b(!-X) :- int(!-X) | ok(!-X). 
 <==>
 b(X) ... %% ̵Íý

-(b-3¤È)c¤¬¸½¾õ¤ÎLMNtal¤Ç¤Ï¤¦¤Þ¤¯¤¤¤«¤Ê¤¤¡¢¤«¤Ê
--¤½¤â¤½¤â³¬ÁØ¥¯¥é¥¹¥¿¥°¥é¥Õ(¤À¤Ã¤±?)¤Ëhyperlink¤¬¤¢¤ë¤È¤¤¤¦¤Î¤Ï¡¢¤É¤¦¤Ê¤ë¤ó¤À¤í¤¦
--¥×¥í¥­¥·¥¢¥È¥à¤ò¤¦¤Þ¤¯Æþ¤ì¤ë¤³¤È¤Ç¤É¤¦¤Ë¤«¤Ê¤é¤Ê¤¤¤«¤Ê¤¡
--data¤Ë¥Ç¡¼¥¿¥¢¥È¥à¤¬·ë¤Ó¤Ä¤¤¤Æ¤¤¤ë¤È¤­¤ÏÇÛÎó¤Ç´ÉÍý¤È¤«

**2010-06-09[#q8663905]
-·Ú¤¤Ëì¤òÆþ¤ì¤ë¤È¤¹¤ë¤È
--+/-¥¢¥È¥à¤Î¤ß»ý¤Æ¤ë
--»ÒËì¡¢¥ë¡¼¥ë¤Ï»ý¤Æ¤Ê¤¤
---¤³¤ÎÊÕ¤ê¤Ï¤º¤Ã¤È¸À¤ï¤ì¤Æ¤ë¤³¤È
--¿³¬Áؤ«¤é(Åù¤·¤¯)»²¾È¤Ç¤­¤ë
---¥°¥í¡¼¥Ð¥ëÊÑ¿ôŪ¤Ê¡¢¥×¥í¥­¥·¥¢¥È¥à¤òÄ´À᤹¤ë¤³¤È¤Ç¤¦¤Þ¤¯¤¤¤«¤Ê¤¤¤«
--(¤Ê¤ó¤é¤«¤Î·Á¤Çdata¤ò»ý¤Ã¤Æ¤ë¤È¤·¤Æ)Ʊ¤¸data»ý¤Ä¤â¤ÎƱ»Î¤ò¤É¤¦°·¤¦¤Î¤«
---Ʊ¤¸¤Ê¤é·ë¹ç¤µ¤»¤ë¤Î¤«¡¢
---·Ú¤¤Ë켫ÂΤδÉÍýÊýË¡¤ËÂ礭¤¯´Ø¤ï¤Ã¤Æ¤¯¤ë
--»²¾È¥«¥¦¥ó¥È(+¥¢¥È¥à¤Î¿ô)¤òÍøÍÑ
--¥Ñ¥é¥á¥¿ÉÕ¤±¤Ë¤è¤ëÆþ½ÐÎÏ¡¢¶¦Í­/Èó¶¦Í­¤Îɽ¸½
---¾åÅÄÀèÀ¸¤ÎÏÀʸ([[¤³¤ì:http://link.springer.de/link/service/series/0558/tocs/t2237.htm]]¤Î19ÈÖ64ËçÌܤ¢¤¿¤ê)¤Ë¤¢¤ë¤±¤É¤â

-Ëì ¢ª ·Ú¤¤Ëì(ÆâÉô¹½Â¤¡¢Ã±½ã¤Ë)
 ¿ÆËì¤Ø¤Î*p          
 ·»ÄïËì¤Ø¤Î*p        
 Âåɽ»ÒËì¤Ø¤Î*p      ¢ª ÇÑ»ß
 Ž±ŽÄŽÑŽØŽ½ŽÄ´ÉÍýŽÊŽ¯Ž¼Ž­ŽÃŽ°ŽÌŽÞŽÙ ¢ª -/+´ÉÍý¤Î¤ß¤ÇºÑ¤à
 Ž±ŽÄŽÑ¿ô               
 ŽÙŽ°ŽÙŽ¾Ž¯ŽÄÇÛÎó          ¢ª ÇÑ»ß

**2010-06-08[#q8663905]
-¥¼¥ßȯɽ»ñÎÁºîÀ®¤ò»î¤ß¤ë
**2010-06-04[#q8663905]
*** [#hbd900b0]
-̵¤«¤Ã¤¿Íýͳ¤È¤·¤Æ¡¢Ëì¤ò»È¤¨¤Ð½ñ¤±¤Á¤ã¤¦¤«¤éɬÍפʤ¤¤Ç¤·¤ç¡¢¤¬¤¢¤ë
-º£¤ÎËì¤Î¤Þ¤Þ¤¸¤ã¤¤¤±¤Ê¤¤Íýͳ¤ò¤Ï¤Ã¤­¤ê¤µ¤»¤Æ¤ª¤¯
--¥ê¥ó¥¯Æ±»Î¤ÎÀáÅÀ¤Ë»È¤¦¤Ë¤Ï½Å¤¤
--¤É¤Î³¬Áؤ«¤é¤âÅù¤·¤¯»²¾È¤Ç¤­¤ë¤è¤¦¤Ê(¥°¥í¡¼¥Ð¥ë¤Ê)¤³¤È¤Ï½ÐÍè¤Ê¤¤(¤ä¤ê¤Ë¤¯¤¤¡©¤ä¤í¤¦¤È»×¤¨¤Ð½ÐÍ褽¤¦¤«¤Ê..)
---ºÇ½é¤Ï¥Õ¥é¥Ã¥È¤Ê¾ì¹ç¤òÁÛÄꤷ¤¿Êý¤¬¤¤¤¤¤ó¤À¤í¤¦¤±¤É¡¢
--(LMN¥ë¡¼¥ë¤Ç)Ʊ¤¸Í×ÁǤò»ý¤ÄËì¤ò·ë¹ç¤¹¤ë»þ¤ËO(Ëì¤Î¿ô^2)¤Ë¤Ê¤ë¤ó¤¸¤ã¡©

***ubuntu : µ¯Æ°¤Ç¤­¤Ê¤¤ [#i88c9a6a]
-¹¹¿·¤·¤¿¤éboot»þ¤Ëgrub²èÌ̤ˤʤäƵ¯Æ°¤·¤Ê¤¯¤Ê¤Ã¤¿
 01,grub>ls
 02,grub>ls (hdX,Y)             #find ubuntu partition
 03,grub>insmod ntfs           #load ntfs module
 04,grub>set root=(hdX,Y)
 05,grub>ls $Boot                   #find BOOT partition's UUID
 06,grub>search --no-floppy --fs-uuid --set xxxxx # 05¤Ç½Ð¤¿UUID¤Î¸å¤í¤Îʸ»úÎó 
 07,grub>loopback loop0 /ubuntu/disks/root.disk 
 08,grub>set root=(loop0)       #reset loop to loop0
 09,grub>linux /boot/vmlinuzxxxxxxxxx  root=/dev/sda1 loop=/ubuntu/disks/root.disk ro #load kernel
 10,grub>initrd /boot/initrd.imgxxxxxxxxxxxx
 11,grub>boot 
-¤Ç̵»öÉü³è
-¤¢¤È¤Ïubuntu¾å¤ÇÁ°²ó¤ÈƱ¤¸¤è¤¦¤Ë¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó2.6.31-20¤è¤ê¿·¤·¤¤¤ä¤Ä¤ò¥³¥á¥ó¥È¥¢¥¦¥È



**2010-06-03 2[#q8663905]
***ÈÉ¥¼¥ß¤Ë¤Æ [#qfb65142]
-¤ä¤Ã¤Ñ¤êËì¤ò¥æ¥Ë¥ª¥ó¤¹¤ë¡¢¤¢¤ë¤¤¤Ï¤½¤ì¤ËÁêÅö¤¹¤ë²¿¤«¤¬¤¢¤Ã¤¿¤Û¤¦¤¬¤¤¤¤¤Î¤Ç¤Ï¤Ê¤¤¤«
--ÉáÄ̤ÎËì¤è¤ê¤â·Ú¤¤Ëì¡¢¤¢¤ë¤¤¤Ï¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤¬¤Û¤·¤¤¤«¤â¤·¤ì¤Ê¤¤
--¤É¤¦¤¤¤¦¥ë¡¼¥ë¤Ë¤Ê¤Ã¤¿¤é¥¨¥ì¥¬¥ó¥È¤Ê¤Î¤«¡¢¤Á¤ç¤Ã¤È½ñ¤¤¤Æ¤ß¤ë¤È¤¤¤¤¤«¤â
--¸«¤¿ÌܤÏÊÑ¿ô3¤Äµö¤¹¤±¤É¡¢¼Â¤Ï·Ú¤¤Ëì¤ò²ð¤·¤Æ¤¤¤ë¤è¤¦¤Ê¥·¥ó¥¿¥Ã¥¯¥¹¥·¥å¥¬¡¼¤Ï¤¢¤ë¤È¤¦¤ì¤·¤¤¤«¤â

**2010-06-03 [#q8663905]
***CHR : dijkstra(optimize) ¬¤ê¤Ê¤ª¤· [#i96a534e]
-¥¯¥¨¥ê¤ÏRand4 (edge=node*4)
|node|128|256|512|1024|2048|4096|h
|normal||0.23|0.66|2.16|8.42|out of stack|
|type/mode_array||0.13|0.31|1.22|3.86|out of stack|
|lmn(ÁÇľ¤Ëencode)|7.95|47.21|320.72|2719.33|||

***Ëì¤Ë¤è¤ëµ¼»÷¶¦Í­ÊÑ¿ô¤Ë¤Ä¤¤¤Æ(ºòÆü¤Î³¤­) [#r5469161]
-ºòÆü¤Ï½é´ü¥°¥é¥Õ¤òÀ¸À®¤¹¤ë»þ¤Ë¡¢´û¤ËÊÑ¿ô(Ëì)¤È¥¢¥È¥à¤¬·ë¤Ó¤Ä¤¤¤¿¾õÂÖ¤ÇÀ¸À®¤·¤Æ¤¤¤¿¡£¤¬¡¢¼ÂºÝ¤Îlmn¥×¥í¥°¥é¥à¤Ç»È¤ª¤¦¤È»×¤¦¤È¡¢(ñ½ã¤Ë¹Í¤¨¤Æ¤À¤±¤É)Î㤨¤Ð1¤ò»ý¤Ä¥¢¥È¥à¤ò
 a(1) :- a(A), {value(1), +A}.
-¤È¤¤¤¦´¶¤¸¤ÇÊÑ´¹¤·¤¿¸å¤Ë¡¢value(1)¤ò»ý¤ÄË줬ʣ¿ô¤¢¤ì¤Ð·ë¹ç¤¹¤ë¡á¶¦Í­ÊÑ¿ô²½¤¹¤ë¤È¤¤¤¦ºî¶È¤¬Æþ¤Ã¤Æ¤¯¤ë¡£
 {value(X), $p}, {value(Y), $q} :- X=:=Y | {value(X), $p, $q}.
-¤³¤ì¤¸¤ã·ë¶É¡¢ºòÆü¤Î'lmn'¥ë¡¼¥ë¤ß¤¿¤¤¤Ë¥¬¡¼¥É¤ÇÀ°¿ô¤òÈæ³Ó¤¹¤ëºî¶È¤òÁ´¤Æ¤ÎÃͤËÂФ·¤Æ¹Ô¤¦É¬Íפ¬½Ð¤Æ¤¯¤ëÌõ¤Ç¡¢·×»»ÎÌŪ¤Ë¤Ï²¿¤â²þÁ±¤µ¤ì¤Ê¤¤¤ó¤¸¤ã¤Ê¤«¤í¤¦¤«¡£
--¤Á¤Ê¤ß¤Ëvar module¤ò»È¤¦¤È¡¢(ºÇ°­¤Î¾ì¹ç¤Ç)n=10000¤Ç155.21[sec]¤À¤Ã¤¿¡£
-¤Ç¡¢¤Þ¤¡¤½¤ì¤¬¥Ç¡¼¥¿(Ëì)¤Îunion¤ÎÏä˷Ҥ¬¤ê¤½¤¦¤Ê¤Ê¤µ¤½¤¦¤Ê¡£

***CHR¤Î¥¨¥ó¥³¡¼¥É¤Ç¤É¤¦¤·¤Æ¤âËì¤ò»È¤Ã¤Æ¤·¤Þ¤¦Îã [#e919309a]
-a¤òÁ´¤Æ¾Ã¤·¤¿¸å¤Ëflag¤ò¾Ã¤¹¡£
-chr
 a, a, a, flag.
 flag \ a <=> true.
 flag <=> true.
-lmn
 {
   a, a, a, flag.
   flag, a :- flag.
 }.
 {flag, @p}/ :- .

**2010-06-02 [#q8663905]

***¼Â¸³ : LMNtal vs CHR (À°¿ô¤ÎÈæ³Ó) [#c69b2962]
-Ʊ¤¸Ãͤò»ý¤Ä¥¢¥È¥à¤ÎÁȤò¸«¤Ä¤±¤Æ¾Ã¤¹
-lmn(SLIM rev354) -O3
 % A,B¤ÎÃͤò¥¬¡¼¥É¤ÇÈæ³Ó
 lmn  @@ a(A), b(B) :- A=:=B | .
 % A,B¤¬Åù¤·¤¤¤³¤È¤¬¥Ø¥Ã¥É¤Çʬ¤«¤Ã¤Æ¤¤¤ë
 lmnV @@ a(A), b(B), {value(N), +A, +B} :- int(N) | .

-chr(SWI-prolog 5.8.3)
 % À©Ìó¤ÎÀë¸À¤Ïmode/type̵¤·¡¢mode/typeÍ­¤ê¡¢mode/type(dense_int)¤Î»°¼ïÎà
 chr @ a(X), b(X) <=> true.

-¥¯¥¨¥ê(·×»»Î̺ǰ­¤Ë¤Ê¤ë¤è¤¦¤Ë)
 %lmn¤Èchr3¼ïÎàÍÑ
 a(1), a(2), ..., a(N).
 b(N), b(N-1), ..., b(1).
 
 %lmnVÍÑ
 a(A1), b(B1), {value(1), +A1, +B1}, ...(NÈÖÌܤޤÇ)

-¼Â¹Ô»þ´Ö(sec.)
|N|10000|20000|40000|80000||h
|lmn|1.02|3.98|16.09|66.76|O(N^2)|
|lmnV|0.09|0.15|0.30|0.57|O(N)|
|chr|5.40|25.57|105.49|out of stack|O(N^2)|
|chr(mode/type)|0.12|0.25|0.52|1.28|O(N)|
|chr(mode/type_array)|0.08|0.20|0.39|0.80|O(N)|
--¤³¤ÎÎãÂê¤Ë´Ø¤·¤Æ¤Ï¡¢Ëì¤ò»È¤Ã¤Æµ¼»÷Ū¤Ê¶¦Í­ÊÑ¿ô¤òɽ¸½¤·¤¿SLIM¤ÎÊý¤¬¼ã´³Áᤤ
--¤¿¤ÀËì¤ÇÊÑ¿ô¤òɽ¤¹¤È¡¢Ê£¿ô¤Î³¬Áش֤Ƕ¦Í­¤µ¤»¤ë¤³¤È¤ÏÆñ¤·¤¤¤ó¤¸¤ã¤Ê¤«¤í¤¦¤«
--¤Þ¤¿º£²ó¤ÏlmnV¤ÏO(1)¤ÇƱ¤¸Ãͤò¸«¤Ä¤±¤Æ¤³¤ì¤ë¤¬¡¢¤è¤ê¿¤¯¤Î¥¢¥È¥à(À©Ìó)¤¬¶¦Ä̤ÎÊÑ¿ô¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¤½¤Î¸Â¤ê¤Ç¤Ï¤Ê¤¤

***CHR : option [#z48e0f3a]
 :- chr_option(Option, Value).
- Option = check_guard_bindings, Value = on/off
--off : default
--on  : ¥ë¡¼¥ë¤Î¥¬¡¼¥É¤ÇÊÑ¿ô¤Ø¤Îillegal¤Ê«Çû¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë¼Â¹ÔÃæÃÇ
--Î㤨¤Ð¼¡¤Î¥ë¡¼¥ë¤Ëquery1, query2¤ò¤½¤ì¤¾¤ìÍ¿¤¨¤ë¤È°Ê²¼¤ÎÍÍ
-
 start(X) <=> X=1 | end(X).
 
 % query1 : Àµ¾ï (X¤ÎÃͤÈ1¤ò'Èæ³Ó'¤·¤Æ¤¤¤ë)
 start(1), start(2). 
 *---> end(1), start(2).
 
 % query2 : ÃæÃÇ (X¤È¤¤¤¦ÊÑ¿ô¤Ë1¤ò'«Çû'¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë)
 start(X). 
 *---> 
 start(_G25417)
 X = _G25417{user = ...} ;
 No
- Option = optimize, Value = ''full''/off
--off  : default
--full : all available optimizations
--¢­¤Îdebug¥â¡¼¥É¤È°ì½ï¤Ë¤Ï»È¤¨¤Ê¤¤
---off¤Èfull¤ÎÃæ´Ö¤Ï̵¤¤¤ó¤À¤í¤¦¤«¡©

- Option = debug, Value = on/off
 on  : default
 off : optimize¤ò»È¤¦¤È¤­¤Ï¼«Æ°Åª¤Ë¤³¤ì¡©


*** CHR : ¤½¤Î¾ [#s9db9d63]
- ERROR: =</2: Arguments are not sufficiently instantiated
-- =< ¤ÎÎÊÑ¿ô¤ËÃͤ¬Â«Çû¤µ¤ì¤Æ¤¤¤Ê¤¤
- findall_constraint/3¡¡(shceduling.pl)
--Ææ¡£


**2010-06-01 [#q8663905]
***CHR : optimize option [#e2d84380]
-type/mode¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡ª
--¼Â¹Ô¥ª¥×¥·¥ç¥ó¤Ä¤±¤Ê¤­¤ã¤¤¤±¤Ê¤«¤Ã¤¿¡¢½ñ¤¤¤È¤±¤è¤½¤¦¤¤¤¦¤Î¡ª
 :- chr_option(optimize, full)
--on¤äoff¤Ç¤â¤Ê¤¯¡¢full¤Ê¤Î¤¬¤è¤±¤¤Ê¬¤«¤ê¤Ë¤¯¤¯¤·¤Æ¤¤¤ë
--¤Á¤ç¤Ã¤È¬¤Ã¤¿¤À¤±¤À¤¬¡¢À°¿ô¤ò°·¤¦¥×¥í¥°¥é¥à¤¬ÁêÅö¤Ë®¤¯¤Ê¤Ã¤Æ¤¤¤ëÍͻҡ¢ÌÀÆü¬¤í¤¦

***¥Ò¡¼¥× [#b818c2d8]
-order¤Ï¼¡¿ô¤ÈÌõ¤¹¤Î¤¬¼«Á³¡©


**2010-05-28 [#q8663905]
***CHR : Union-Find algorithm [#c69b2962]
-¤È¤ê¤¢¤¨¤ºÌäÂê¤ÎÆâÍƤò¤â¤¦°ìÅÙÍý²ò
-ñ½ã¤Ê¤â¤Î¡¢ºÇŬ²½¤µ¤ì¤¿¤â¤Î¤òlmn¤Ë¥¨¥ó¥³¡¼¥É
--½¸¹ç¤òËì¤Çɽ¤¹¤³¤È¤Ï²Äǽ¤Ê¤ó¤À¤í¤¦¤«¡©

***memo [#u83e7b4c]
-»²¾È¥«¥¦¥ó¥È¡¢¥Þ¡¼¥¯¥¢¥ó¥É¥¹¥¤¡¼¥×

**2010-05-27 [#q8663905]
***CHR : dijkstra¤Îtype/mode [#kb505e2f]
-ÏÀʸ¤ÎÊý¤Ç¤Ïtype/mode¤Î̵ͭ¤Ç·×»»Î̤¬ÊѲ½¤·¤Æ¤¤¤ë¤¬¡¢¼ê¸µ¤ÎSWIprolog¤Ç¤ÏÆ°¤¤¤Æ¤¤¤ë¤Î¤«¤è¤¯Ê¬¤«¤é¤Ê¤¤
--dense_int¤ò»È¤¦¤È¼Â¹Ô»þ´Ö¤¬ÊѤï¤ë¡ÊµÕ¤ËÃÙ¤¯¤Ê¤Ã¤¿¤±¤É¡Ë·ë²Ì¤¬¤¢¤Ã¤¿¤«¤é¡¢²¿¤é¤«¤Î±Æ¶Á¤Ï½Ð¤Æ¤¤¤ë¤è¤¦¤À¡¢¤Ç¤âÆæ
-¾¤Ë¤ÏUnion-find¤Ç¤âIndex¤¬»È¤ï¤ì¤Æ¤¤¤ë¤è¤¦¤À
***CHR : partner(passive)constraint¤Îõº÷ [#l219f1ac]
-¶¦Í­¤ÎÊÑ¿ô¤ò¤¦¤Þ¤¯ÍøÍѤ·¤Æ¥Ñ¡¼¥È¥Ê¡¼¤Îõº÷¤òÁ᤯¤·¤Æ¤Û¤·¤¤¡¢Ã¯¤«¤Ë


**2010-05-26 [#q8663905]
***OpenOffice:Âпô¥°¥é¥Õ [#u5819d25]
-½ñ¼°¢ª¼´¢ªY¼´¢ª¥¹¥±¡¼¥ë¥¿¥Ö


**2010-05-24 [#q8663905]
-¤¤¤í¤¤¤íÀ°Íý
***dense_int [#maaaf4e7]
-¥Ï¥Ã¥·¥å¥Ù¡¼¥¹¤ÎÀ©Ì󥹥ȥ¢¤È¤ÏÊ̤ˡ¢ÇÛÎó·Á¼°¤ÎÀ©Ì󥹥ȥ¢¤òÍÑ°Õ¤·¡¢¤½¤³¤Ëdense_int·¿¤Ç¥¤¥ó¥Ç¥Ã¥¯¥¹ÉÕ¤±¤·¤Æ³ÊǼ¤¹¤ë
--¥Ï¥Ã¥·¥å¤Î·×»»²ó¿ô¤ò¸º¤é¤»¤ë¡¢¾×ÆͤòÈò¤±¤ë¤³¤È¤¬¤Ç¤­¤ë
--¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ë»È¤ï¤ì¤ëÀ°¿ô¤Î¸Ä¿ô¤¬[0,n]´Ö¤Ç¤¢¤ëÄøÅÙ¿¤¤(Ç»¤¤=dense)¾ì¹ç¤Ë¸ú²Ì¤òȯ´ø¤¹¤ë¡¢¤é¤·¤¤
-Indexing tequnic¤È¤Î´Ø·¸¤ò¤â¤¦¾¯¤·¸«¤¿¤¤
--chapter 9 join ordering¤â»²¹ÍÄøÅÙ¤Ë

-dijkstra_fheap¤Î·×¬
***¤Û¤« [#q8c3f6dc]
-prolog¤Î¥Þ¥Ã¥Á¥ó¥°¤Ï¤É¤¦¤Ê¤Ã¤Æ¤ë¡©
-edge(X,Y)·Á¼°¤À¤È·×»»Î̤Ϥɤ¦¤·¤Æ¤â¿¤¯¤Ê¤ë
--¥¢¥È¥à¤Î°ú¿ô¤Î¿ô¤ò¥ë¡¼¥ë¤Î¾ò·ï¤Ë¤Ç¤­¤¿¤é...


**2010-05-19 [#z74307c0]
***callback : graph_gen_nocycle_uniq [#m6bd5f6d]
-dijkstra¤Î¥×¥í¥°¥é¥à¤ÏÍ¿¤¨¤ë¥°¥é¥Õ¤Ë¿§¡¹Ãíʸ¤¬Â¿¤¤
-ÊÄϩ̵¤·¤«¤ÄƱ¤¸edge¤¬2¤Ä°Ê¾å¸ºß¤·¤Ê¤¤¥°¥é¥Õ¤òÀ¸À®
--´Ø¿ô̾¤¬¤ª¤â¤¤¤Ä¤«¤Ê¤¤

 void graph_gen_nocycle_uniq(ReactCxt rc,
                LmnMembrane *mem,
                LmnAtom a0, LmnLinkAttr t0,
                LmnAtom a1, LmnLinkAttr t1,
                LmnAtom a2, LmnLinkAttr t2,
                LmnAtom a3, LmnLinkAttr t3)
 {
   int n = (int)a1, m = (int)a2, r = (int)a3;
 
   LmnSAtom sa;
   const char *s;
 
 
   if (LMN_ATTR_IS_DATA(t0)) {
     switch (t0) {
     case LMN_INT_ATTR:
       break;
     case LMN_DBL_ATTR:
       break;
     default:
       break;
     }
   } else { /* symbol atom */
     s = (const char *)LMN_SATOM_STR(a0);
   } 
 
   int a[m], b[m];
   int i, j, k, flag = 0;
   srand(time(NULL)); 
 
   for (i = 0; i < m; i++) {
     a[i] = rand() % n + 1;
     if (a[i] == 100) a[i]--;
     b[i] = a[i] + rand() % (n - (a[i] - 1));
     if (a[i] == b[i]) a[i]--;
   } 
 
 
   while(!flag){
     flag = 1;
     for (i = 0; i < m; i++) {
       for (j = 0; j < m; j++) {
         if (i != j && a[j] == a[i] && b[j] == b[i]) {
           a[j] = a[j] / 2;
           b[j] = a[j] + rand() % (n - a[j]) + 1;
           flag = 0;
         }
       }
     }
   }
 
   for (i = 0; i < m; i++){
 
     sa = lmn_mem_newatom(mem, lmn_functor_intern(ANONYMOUS,
                                                  lmn_intern(s),
                                                  3)
                          );
     k = rand() % r + 1;
     lmn_mem_newlink(mem,
                     sa, LMN_ATTR_MAKE_LINK(0), 0,
                     (LmnWord)a[i], LMN_INT_ATTR, 0);
     lmn_mem_push_atom(mem, a[i], LMN_INT_ATTR);
     lmn_mem_newlink(mem,
                     sa, LMN_ATTR_MAKE_LINK(0), 1,
                     (LmnWord)b[i], LMN_INT_ATTR, 1);
     lmn_mem_push_atom(mem, b[i], LMN_INT_ATTR);
     lmn_mem_newlink(mem,
                     sa, LMN_ATTR_MAKE_LINK(0), 2,
                     (LmnWord)k, LMN_INT_ATTR, 2);
     lmn_mem_push_atom(mem, k, LMN_INT_ATTR);
   }
 
   lmn_mem_delete_atom(mem, a0, t0);
   lmn_mem_delete_atom(mem, a1, t1);
   lmn_mem_delete_atom(mem, a2, t2);
   lmn_mem_delete_atom(mem, a3, t3);
 } 

**2010-05-18 [#z74307c0]
-25.

**2010-05-17 [#z74307c0]
***prolog : setof [#z3bb4037]
-listdom.pl¤Ç¤Î½¸¹çÍ×ÁǤβû»
 ...
 all_addition(L1,L2,L3) :- setof(Z, X^Y^(member(X,L1), member(Y,L2), Z is X + Y), L3).
 ...
--¼ÂÁõ¤¬¤É¤¦¤Ê¤Ã¤Æ¤¤¤ë¤Î¤«Ä´¤Ù¤¿¤±¤É¤è¤¯¤ï¤«¤é¤Ê¤«¤Ã¤¿
--¤¿¤ÀŤµN¤Î¥ê¥¹¥È¤ËÂФ·¤ÆO(N^2)¤À¤Ã¤¿¤Î¤Ç¡¢ÆÃÊÌÊѤï¤Ã¤¿¼ÂÁõ¤¸¤ã¤Ê¤µ¤½¤¦¡©
---LMNtal¤Ç¤â¤ä¤Ã¤Ñ¤êN^2¤¬ºÇ®¤À¤í¤¦¤«


**2010-05-14 [#z74307c0]
***CHR¤Îlistdom.pl [#z3bb4037]
-X lt Y ¤Ã¤Æñ¤Ëmax(X)<max(Y)¤Ê¤ó¤À¤í¤¦¤«¡¢¾¯¤Ê¤¯¤È¤â¼Â¹Ô·ë²Ì¤Ï¤½¤¦¤ß¤¨¤ë
-¤À¤È¤·¤Æ¤â¤Ê¤ó¤À¤«¤Á¤ã¤ó¤È½ñ¤«¤ì¤Æ¤Ê¤¤µ¤¤¬¤¹¤ë¤Ê
***UNYO¤Î¥Ð¥°¡©¡Ê´û¤ËÊó¹ð¤µ¤ì¤Æ¤¤¤¿¡Ë [#z3bb4037]
-''(Äɵ­)Java¥³¥ó¥Ñ¥¤¥é¤Î¥Ð¥°¤À¤Ã¤¿¤ß¤¿¤¤''
--[[¸À¸ìÈɥХ°Êó¹ð:http://www.ueda.info.waseda.ac.jp/lmntal/local/pukiwiki.php?%A5%D0%A5%B0%CA%F3%B9%F0]]

&br;
-LE1.3.5¤ËƱÉõ¤µ¤ì¤Æ¤¤¤ëUNYO3G¤Ç¤Î¸½¾Ý
-¡ÖÍ×ÁǤ¬°ì¤Ä°Ê¾åÆþ¤Ã¤Æ¤¤¤ë(¶õ( [] )¤¸¤ã¤Ê¤¤)¥ê¥¹¥È¡×¤Ë¥Þ¥Ã¥Á¤¹¤ë¤è¤¦¤Ê¥ë¡¼¥ë¤ò½ñ¤­¤¿¤¯¤Ærule1¤ÎÍͤˤ·¤¿

 list(x, [1,2,3]), list(x, [4,5,6]).
 
 rule1 @@ %¶õ¤¸¤ã¤Ê¤¤¥ê¥¹¥È¤Ë¥Þ¥Ã¥Á¤¹¤ë¥ë¡¼¥ë
 list(X1, [Y1 | L1]), list(X2, [Y2 | L2]) :- X1 = X2 |
   merge(X1, [Y1 | L1], [Y2 | L2]).
 
 rule2 @@ %rule1¤òŬÍѸ塢ŬÍѤµ¤ì¤ë¥ë¡¼¥ë
 merge(X, L1, L2) :- ground(L1), ground(L2) | end(X).


-Java¡¢SLIM¤Ç¼Â¹Ô¤¹¤ë¤ÈÀµ¾ï¤À¤¬¡¢¤³¤ì¤òUNYO¤ÇÆ°¤«¤¹¤È¤Ê¤ó¤«¥ê¥ó¥¯¤¬¤ª¤«¤·¤¯¤Ê¤Ã¤¿
#ref(unyo_bug.png)

 [Step: 0]
 list(x,[1,2,3]), list(x,[4,5,6])
 
 [Step: 1]
 merge(x,[1,2,3],[L1|L10]), '.'(6,[],L23), '.'(5,L23,L10), 4=[L1|L10]

-¤³¤Î¤¢¤Èrule2¤¬Å¬ÍѤµ¤ì¤ë¤ÈÍî¤Á¤ë
--ground¥Á¥§¥Ã¥¯Ãæ¤Ë¥°¥é¥Õ¤¬ÅÓÃæ¤ÇÅÓÀÚ¤ì¤Æ¤ë¤«¤é¡©
-2G¤Ç¤âÍî¤Á¤¿¡ª
-rule1¤Î¥¬¡¼¥É¡ÊX1=X2¡Ë¤¬´Ø·¸¤·¤Æ¤¤¤ë¤Î¤«¤â¡¢unary(X1), unary(X2)¤È¤«¤Ë¤¹¤ë¤ÈÂç¾æÉ×
--list¤ò1²Á(list = [1,2,3]¤È¤«)¤Ë¤·¤Æ¡¢X1=X2¤ò¹Ô¤ï¤Ê¤¤¤è¤¦¤Ë¤·¤¿¤éÂç¾æÉפÀ¤Ã¤¿¡¢¤ä¤Ã¤Ñ¤êX1=X2¤¬¤¤¤±¤Ê¤¤¡©
--merge¤ÎÂè°ì°ú¿ô¤ËX1¤òÆþ¤ì¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤ÈÂç¾æÉס¢¥¢¥È¥à¤ÎºÆÍøÍѤ¬´Ø·¸¤·¤Æ¤¤¤ë¤Î¤«¡©
-rule1¤ò¤³¤¦¤¹¤ì¤ÐÂç¾æÉפÀ¤±¤É¡¢¥ê¥ó¥¯¤ÎÀ褬¥ê¥¹¥È¹½Â¤¤Ê¤é¤Ð¥Þ¥Ã¥Á¤¹¤ë¤è¤¦¤Ê¥ë¡¼¥ë¤Î¤­¤ì¤¤¤Ê½ñ¤­Êý¤Ï¤Ê¤¤¤â¤Î¤«
 list(X1, L1), list(X2, L2) :- X1 = X2 | merge(X1, L1, L2).

**2010-05-13 [#b773aa72]
***callback´Ø¿ô : integer_int2float [#x3e70a0e]
 void integer_int2float(ReactCxt rc,
                        LmnMembrane *mem,
                        LmnAtom a0, LmnLinkAttr t0,
                        LmnAtom a1, LmnLinkAttr t1)
 {
   int i = a0;
   double *d = LMN_MALLOC(double);
   *d = i * 1.0; 
 
   lmn_mem_newlink(mem,
                   a1, LMN_ATTR_MAKE_LINK(0), LMN_ATTR_GET_VALUE(t1),
                   (LmnWord)d, LMN_DBL_ATTR, 0);
   lmn_mem_push_atom(mem, (LmnWord)d, LMN_DBL_ATTR);
 
   lmn_mem_delete_atom(mem, a0, t0);
 }

***Prolog : delete [#xf5264c2]
 delete([1,3,2,3],3,X) ----> X = [1,2].
***ÈÉ¥¼¥ß [#ma2efd4a]
-°ì¤Ä¤ÎÎãÂê¤ò¤â¤¦¾¯¤·ºÙ¤«¤¯¸«¤Æ¤ß¤è¤¦
--¥Ç¡¼¥¿É½¸½¤ä¥ë¡¼¥ë¤Î¹©Éפʤ󤫤Ǥ³¤ì°Ê¾å²þÁ±¤Ç¤­¤Ê¤¤¤È¤¤¤¦¤È¤³¤í¤Þ¤Ç¤â¤Ã¤Æ¤¤¤¯

**2010-05-12 [#v8b22e83]
***[[New CHR website:http://dtai.cs.kuleuven.be/projects/CHR/index.shtml]] [#d611aeec]
-¥ê¥Ë¥å¡¼¥¢¥ë¤µ¤ì¤Æ¤Æ¤Ó¤Ã¤¯¤ê

**2010-05-11 [#ad793772]
**2010-05-11 [#geafcdc0]
*** CHR : \+ : and¤ÎÈÝÄê? [#qb484449]
- A=B¢ËC=D¤ÎÈÝÄê¤Ê¤Î¤Ç¡¢A\=B¢ÊC\=D¤«¤Ê¡¢¼Â¹Ô¤·¤Æ¤ß¤ë¤È¤½¤¦¤Ê¤Ã¤Æ¤¤¤ëÍͤÀ
 ... <=> \+ (A=B, C=D) | ...

**2010-05-09 [#k1072db1]
***listdom.pl : ¥¨¥ó¥³¡¼¥É´°Î»¡©[#x88b5a48]
-¥¨¥ó¥³¡¼¥É¤Ç¤­¤¿¤È»×¤¦¡¢¤«¡¼Èè¤ì¤¿

**2010-05-08 [#ad793772]
**2010-05-08 [#u021c55c]
***listdom.pl [#x88b5a48]
 lt : less than
 le : less than or equal
 ne : X ne Y, Y::[*]¤Ç*¤«¤éX¤ò¼è¤ê½Ð¤¹?

**2010-05-07 [#ad793772]
**2010-05-07 [#r6d43f00]
***callback´Ø¿ô : graph_gen [#ef895289]
-(Name, M, N, R)¤Ç1-R´Ö¤ÎÍð¿ô¤ò°ú¿ô¤Ë»ý¤ÄM²Á¤ÎName¥¢¥È¥à¤òN¸ÄÀ¸À®

 /*
  * (Name, M, N, R):
  *
  *  Name    = symbol atome
  *  M, N, R = integer
  *
  *  Create random integer sets.
  *
  *            <------------- M --------------------->
  *  1) 'Name'(rand()%R+1, rand()%R+1, ..., rand()%R+1),
  *  2) 'Name'(rand()%R+1, rand()%R+1, ..., rand()%R+1),
  *                    ...
  *  N) 'Name'(rand()%R+1, rand()%R+1, ..., rand()%R+1).
  *
  */ 
 
 void graph_gen(ReactCxt rc,
                LmnMembrane *mem,
                LmnAtom a0, LmnLinkAttr t0,
                LmnAtom a1, LmnLinkAttr t1,
                LmnAtom a2, LmnLinkAttr t2,
                LmnAtom a3, LmnLinkAttr t3)
 {
   int m = (int)a1, n = (int)a2, r = (int)a3;
   int i, j, v; 
 
   LmnSAtom sa;
   const char *s;
 
 
   if (LMN_ATTR_IS_DATA(t0)) {
     switch (t0) {
     case LMN_INT_ATTR:
       break;
     case LMN_DBL_ATTR:
       break;
     default:
       break;
     }
   } else { /* symbol atom */
     s = (const char *)LMN_SATOM_STR(a0);
   }
 
   for (i = 0; i < n; i++){
 
     sa = lmn_mem_newatom(mem, lmn_functor_intern(ANONYMOUS,
                                                  lmn_intern(s),
                                                  m)
                          );
 
     for (j = 0; j < m; j++) {
       v = rand() % r + 1;
       lmn_mem_newlink(mem,
     		      sa, LMN_ATTR_MAKE_LINK(0), j,
	 	      v, LMN_INT_ATTR, j);
       lmn_mem_push_atom(mem, v, LMN_INT_ATTR);
     }
 
   }
  
   lmn_mem_delete_atom(mem, a0, t0);
   lmn_mem_delete_atom(mem, a1, t1);
   lmn_mem_delete_atom(mem, a2, t2);
   lmn_mem_delete_atom(mem, a3, t3); 
 
 }

-¤³¤ó¤Ê´¶¤¸

 '$callback'('graph_gen', edge, 3, 4, 10).
 ---->
 edge(7,1,4). edge(4,8,6). edge(2,6,10). edge(1,5,10).

***prolog : cut(!) [#b25eb2f7]
-¥Ð¥Ã¥¯¥È¥é¥Ã¥¯¤òÀ©¸æ¤¹¤ëcut¤Ë¤Ä¤¤¤Æ
 1) ticket(Age, Money) :- Age < 13, Money is 500.
 2) ticket(Age, Money) :- Money is 1000.
--rule1¤¬ºÆ»î¹Ô¤·¤¿¤È¤­¤Ë¡¢Age¤Ë´Ø·¸Ìµ¤¯rule2¤¬É¾²Á¤µ¤ì¤Á¤ã¤¦
 1) ticket(Age, Money) :- Age < 13, Money is 500, !.
 2) ticket(Age, Money) :- Money is 1000.
--´¶Ã²Éä¤Ç¥Ð¥Ã¥¯¥È¥é¥Ã¥¯¤òÀ©¸æ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤

**2010-05-07 [#ad793772]
**2010-05-07 [#u6025650]
***callback´Ø¿ô¤ò¿¨¤Ã¤Æ¤ß¤¿ [#na78e819]
-[[SLIM callback´ØÏ¢ ¥á¥â]]

&br;
***¤³¤ó¤Ê¤Î¤¬¤¢¤Ã¤¿¤Î¤«¡¢¥³¥í¥óµ­Ë¡¡© [#vf356b38]
 x :: [1,2,3],
 y :  [4.5.6].
 ---->
 <Java½èÍý·Ï>  '::'(x,[1,2,3]). y:[4,5,6].  
 <SLIM>        '.'(1,[2,3],'::'(x)). '.'(4,[5,6],':'(y)).

-¤³¤ì¤Ïerror
 [4.5.6] : y.

-¥Á¥ë¥À¤È¤«_¤È¤«¤â»î¤·¤Æ¤ß¤¿¤±¤É¡¢¤³¤¦¤¤¤¦É÷¤ËÆÃÊÌ°·¤¤¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤Ï¸«Åö¤¿¤é¤Ê¤«¤Ã¤¿

&br;
-eclipse ¹ÔÈÖ¹æ¤Îɽ¼¨
++¡Ö¥¦¥£¥ó¥É¥¦¡×>¡ÖÀßÄê¡×>¡Ö°ìÈÌ¡×>¡Ö¥¨¥Ç¥£¥¿¡×>¡Ö¥Æ¥­¥¹¥È¡¦¥¨¥Ç¥£¥¿¡×
++¡Ö¹ÔÈÖ¹æ¤Îɽ¼¨¡×¤Ë¥Á¥§¥Ã¥¯

**2010-05-06 [#ad793772]
**2010-05-06 [#i6803b6f]
***CHR encoding [#abc74552]
-À©Ìó¥×¥í¥°¥é¥ß¥ó¥°Åª¤ÊÎãÂê¤òencode¥Ú¡¼¥¸¤ËŽ¤ÃÉÕ¤±¤ë
--Ž¤ÃÉÕ¤±¤Æ¾¯¤·À°·Á¤·¤Æ¤ß¤¿
-¤ä¤ê¤«¤±
--TM, RAM, Floyd-Warshall


**2010-05-03 [#ad793772]
**2010-05-03 [#ya3df301]
***Floyd-WarshallË¡¤Î²òÀâ¤òÆɤó¤Ç¤ß¤¿ [#h38b6bc4]
-¤¢¤Î¥¢¥ë¥´¥ê¥º¥à¤ò¤½¤Î¤Þ¤ÞLMNtal¤Ç½ñ¤±¤ë¤Î¤«
--½ñ¤±¤½¤¦¤«¤â¡©¤Á¤ç¤Ã¤È½ñ¤¤¤Æ¤ß¤ë
-CHRʸ¸¥Æâ¤Î¥Ù¥ó¥Á¥Þ¡¼¥¯¤Ë¤¿¤Þ¤Ë"FLOYD-WARSH(N)"¤Æ¤Î¤¬¤¢¤ë¡¢¤è¤¯Ä´¤Ù¤ë

**2010-05-02 [#ad793772]
**2010-05-02 [#o824d9ad]
***ubuntu kernel panic! [#g4982e04]
-ubuntu¤òupdate¤·¤ÆºÆµ¯Æ°¤·¤¿¤ékernel panic!
--¸¡º÷¤¹¤ë¤ÈLinux 2.6.31-21-generic¤Ç¤Ï³ä¤È¿¤¯µ¯¤³¤Ã¤Æ¤¤¤ë¤ß¤¿¤¤
--GWÁ᡹¤¶¤±¤ó¤Ê¡¢¤È¤¤¤¦¤ï¤±¤Ç
 /boot/grub/grub.cfg¡¡¤Î
 Linux 2.6.31-21-generic¡¡¤ÎÉôʬ¤ò¥³¥á¥ó¥È¥¢¥¦¥È
--¤·¤Æ¤È¤ê¤¢¤¨¤º²óÈò
-ubuntu¤ÎÆüËܸìÊÑ´¹¥Ñ¥Ë¥¯¤Ã¤Æ¤¤¤ë
 ¤ê¤è¤¦¤·¤ä¤¹¤¤¤«¤¿¤Á¤Ç
 ÍýÁÛ : ÍøÍѤ·°×¤¤·Á¤Ç
 ¸½¼Â : ÍýÍƻդ䥹¥¤¥«¤¿¤Á¤Ç
-ÎØÆɤÎôÅöÉôʬ¤òÆɤó¤Ç¤ß¤¿
--¤Ê¤ó¤«¥×¥í¥»¥¹¤Ã¤Æ¸ÀÍÕ¤ÎÄêµÁ¤È¡¢Java¤Ç¤Ï¤É¤¦¤ä¤Ã¤Æ»È¤¦¤«¤ß¤¿¤¤¤ÊÏäФ䫤ê¤À¤Ã¤¿
--ÎãÂê¤ò¤µ¤é¤Ã¤Èή¤·¤Æ¤·¤Þ¤Ã¤¿¤¬¡¢¸åĮʬ¤ÎÆâÍƤ¬Çö¤¤¤Ê¤é¤³¤³¤â¤Á¤ã¤ó¤È¥¹¥é¥¤¥É¤ËÀ¹¤ê¹þ¤ó¤À¤Û¤¦¤¬¤¤¤¤¤«¤È

**2010-04-27 [#ad793772]
**2010-04-27 [#df9764f6]
***CHR encoding [#q314b718]
-CHR encoding¤Î¥Ú¡¼¥¸¤òÀ°·Á¤·¤Æ¤ß¤¿¤¬¡¢¤¦¤¦¤à
-CHR¤Îʸ¸¥¤ò¤¢¤µ¤Ã¤Æ¤¤¤¿¤é¡¢¤¤¤¯¤Ä¤«¿·¤·¤¤ÎãÂê¤ò¸«¤Ä¤±¤¿¤Î¤Ç¤Á¤ç¤Ã¤È½ñ¤¤¤Æ¤ß¤ë
-ÎØÆɤò˺¤ì¤Ê¤¤¤è¤¦¤Ë¤·¤Ê¤¤¤È

&br;
-¥­¥ä¥Î¥ó¤Î¥á¡¼¥ê¥¹ºî¤Ã¤¿

**2010-04-26 [#ad793772]
**2010-04-26 [#y059c76f]
***[[¸À¸ìÈÉ¥í¡¼¥«¥ë/CHR encoding:http://www.ueda.info.waseda.ac.jp/lmntal/local/pukiwiki.php?CHR%20encoding]] [#j4ccfc88]
-¤È¤ê¤¢¤¨¤ººî¤Ã¤Æ¤ß¤¿¤â¤Î¤Î¡¢¤É¤¦¤¤¤¦¥ì¥¤¥¢¥¦¥È¤Ë¤·¤¿¤é¤¤¤¤¤Î¤«Çº¤à
***[[SLIM»þ´Ö·×¬]] [#db7d2000]
-¤Þ¤À¤Þ¤À¾¯¤Ê¤¤¤¬¡¢ÆʹӤǤޤȤá¤Æ¤ß¤¿
-CHR¥×¥í¥°¥é¥à¤ËÍ¿¤¨¤ë¥¯¥¨¥ê¤ò¤É¤¦¤¹¤ë¤«¤Ç¤¤¤Ä¤âǺ¤à¤Î¤Ï¤Ê¤ó¤È¤«¤Ê¤é¤Ê¤¤¤â¤Î¤«
&br;
***¤Û¤« [#wc9fbf9c]
-dijkstra¤Ï½Å¤ß¤¬ÈóÉé¿ô¤Î¾ì¹ç¤Î¤ß»È¤¨¤ë¡¢O(V^2)
-Bellman-Ford¤ÏÈóÉé¿ô¤Ç¤âok¡¢O(V^3)
-Warshall-Floyd¤ÏÈóÉé¿ôok¡¢¤Ç¤â¥µ¥¤¥¯¥ë¤ËÈóÉé¿ô¤¬¤¢¤ë¤È¥À¥á¡¢O(V^3)


**2010-04-25 [#ad793772]
**2010-04-25 [#nde74527]
***SLIM¾¸À¸ì¥¤¥ó¥¿¥Õ¥§¡¼¥¹¥É¥­¥å¥á¥ó¥È [#g363450b]
-slim/doc/foreign.txt

***system_ruleset¤Ècallback [#h40a307f]
-¤³¤ó¤ÊÉ÷¤ËÁȤ߹ç¤ï¤»¤ë¤È¤ª¤«¤·¤¯¤Ê¤ë¡¢¤¢¤¿¤ê¤Þ¤¨¤«
 '$callback'(integer_rand, N+1, H).

 

**2010-04-24 [#ad793772]
**2010-04-24 [#af62a907]
***graph_generator.c [#w715752b]
-ºî¤Ã¤Æ¤ß¤¿¡¢¸å²ù¤Ï¤·¤Æ¤¤¤Ê¤¤
--ÃÏÌ£¤Ë½Å¤ßÉÕ¤±Í­¤ê̵¤·¤ä¡¢½ÐÎÏÀè¤òÁª¤Ù¤¿¤ê¤¹¤ë
--¤Ê¤¼LMNtal¤Ç½ñ¤«¤Ê¤¤¤Î¤«¡¢¤È¸À¤ï¤ì¤Æ¤âÆäËÍýͳ¤Ï¤Ê¤¤¤è

 $ ./graph_generator
 name of edge (string) : edge
 node num (integer) : 5
 edge num (integer) : 5
 edges have weights? (yes:1 or no:0) : 1
 max edge weights (integer) : 3
 at random? (yes:1 or no:0) : 1
 ---------------------------------
 edge(3, 2, 2). edge(1, 4, 2). edge(5, 3, 2). edge(3, 3, 2). edge(4, 5, 3).

***UNIX [#i96144f1]
-script¥³¥Þ¥ó¥É

**2010-04-23 [#ad793772]
**2010-04-23 [#i36266fa]
***Canon»ö¶È½ê¸«³Ø²ñ [#wd4e470e]
-³«È¯¿¦¤Ç¤âÍ×Áǵ»½Ñ¸¦µæŪ¤Ê»Å»ö¤â¤¢¤ë¡¢¤È¤¤¤¦¤Î¤Ï¤É¤³¤Î»ö¶È½ê¤âƱ¤¸¤é¤·¤¤
-Canon¹ç³Ê¼Ô¤Î¥á¡¼¥ê¥¹Ã´Åö¤Ë¤Ê¤Ã¤¿¡£¾Ð

**2010-04-22 [#ad793772]
**2010-04-22 [#kd7c0982]
***Union Find [#ic10d66a]
-¥¨¥ó¥³¡¼¥É¤·¤Æ¤ß¤¿¡¢¥¯¥¨¥ê¤È¤·¤ÆÊÑ¿ô¤ÏÍ¿¤¨¤é¤ì¤Ê¤¤¤±¤É
***ºÇû·ÐÏ©ÌäÂê [#fbe7bb00]
-¥°¥é¥Õ¾å¤Î1ÅÀ¤«¤é¾¤ÎÁ´¤Æ¤ÎÅÀ¤Ø¤ÎºÇûµ÷Î¥¤òµá¤á¤ë
--chr_sssp : Àè½µ¤ÎÁ´ÂÐÍÑ¤Î¥×¥í¥°¥é¥à¤ò¾¯¤·ÊѤ¨¤Æ¥Î¡¼¥É1¤«¤é¤ÎºÇû·ÐÏ©¤Î¤ß¤òµá¤á¤ë
---¤¿¤Ã¤¿¤Î2¥ë¡¼¥ë
---O(N^7)¤Î¥×¥í¥°¥é¥à¤ò¡¢N¸Ä¤Î¥Î¡¼¥É¤«¤é¤Ç¤Ï¤Ê¤¯¥Î¡¼¥É1¤«¤é¤Îõº÷¤Î¤ß¤Ë¤·¤¿¤Î¤ÇO(N^6)
|node|10|20|30|40|50|
|time|0.02|1.15|14.47|83.96|330.00|
|t/(n/10)^6|0.023|0.018|0.019|0.020|0.021|

--chr_dijkstra_Fheap : ¥À¥¤¥¯¥¹¥È¥éË¡¡ÜÍ¥ÀèÅÙÉÕ¤­¥­¥å¡¼(¥Õ¥£¥Ü¥Ê¥Ã¥Á¥Ò¡¼¥×¤Çɽ¸½)
---O(M+NlogN)¤ÇºÇ¤â®¤¤¤È¤µ¤ì¤Æ¤¤¤ëÊýË¡¡¢M¤Ï¥¨¥Ã¥¸¿ô
---CHR¤Ç½ñ¤¤¤¿¤éO(N*I+M*D+N*E)¡¢I¤ä¤éD¤Ï¥ë¡¼¥ëŬÍѲó¿ô
---dijkstra¡ÜFheap¥â¥¸¥å¡¼¥ë¤Ç26¥ë¡¼¥ë¤¯¤é¤¤¤¢¤ë
---º£²ó¤Î¥¯¥¨¥ê¡ÊÍ­¸þ´°Á´¥°¥é¥Õ¡Ë¤Ç¤ÏO(N^4)¤è¤ê¼ã´³Ä㤤¤¯¤é¤¤¤Ë¤Ê¤ë¤Ï¤º
&br;
---¤Ê¤Ã¤Æ¤¿
|node|10|20|30|40|50|60|
|time|0.01|0.05|0.17|0.45|1.03|1.95|
|t/(n/10)^4|0.01|0.00312|0.00213|0.00175|0.00164|0.00150|

***CHR¥×¥í¥°¥é¥ß¥ó¥°¡¢µ¤¤Ë¤Ê¤ë¤³¤È [#wc70dd00]
-CHR¤ÎÎãÂê¤Ë¤Ï¡Ö½èÍý·Ï¤Î¼ÂÁõÊýˡŪ¤Ë¥ë¡¼¥ë¤ÎŬÍѽç½ø¤Ï¤³¤¦¤Ê¤ë¤Ï¤º¡×¤ò¹Íθ¤·¤Æ¥×¥í¥°¥é¥ß¥ó¥°¤·¤Æ¤¤¤ë¤â¤Î¤¬Â¿¤¤µ¤¤¬¤¹¤ë(¤È¤¤¤¦¤«Ê¸¸¥¤È¤«¤ÇÌÀ¼¨¤·¤Æ¤¤¤ë)
--Î㤨¤Ð¡¢¼¡¤Î2¤Ä¤Î¥ë¡¼¥ë¤Ï¾å¤«¤é½ç¤Ëɾ²Á¤µ¤ì¤ë
---item¤¬¤¿¤¯¤µ¤ó¤¢¤ëÃæ¤Ëfindmin¤òÀ¸À®¤¹¤ë¤Èfindmin@¤¬°ìÄ̤ê¼Â¹Ô¤µ¤ì¡¢ºÇ¸å¤Ëfoundmin@¤¬¼Â¹Ô¤µ¤ì¤ë
--¤Ê¤ó¤«¤º¤ë¤¯¤Ê¤¤¤«¡¢Ê̤Ëitem¤¬¤¢¤Ã¤Æ¤âfoundmin@¤¬¼Â¹Ô¤µ¤ì¤Æ¤â¤¤¤¤¤Ï¤º¤Ç¤Ï
--¤½¤ì¤È¤âLMNtal¤Ç¤½¤¦¤¤¤¦½ñ¤­Êý¤·¤Ê¤¤¤Î¤ÏÇϼ¯ÀµÄ¾¤¹¤®¤ë¤Î¤À¤í¤¦¤«
 findmin  @ findmin, item(I,K,_,0,_) ==> min(I,K).
 foundmin @ findmin <=> true.


**2010-04-21 [#ad793772]
**2010-04-21 [#d1f2e80c]
***dijkstra ¤Î¥¨¥ó¥³¡¼¥É½ª¤ï¤Ã¤¿ [#hfa7d37e]

***¤½¤Î¾ [#k09b3c28]
-[[2011´¡¡¼ç¤Ê´ë¶È¤ÎºÎÍÑ¿Í¿ô:http://www.nikkei.com/tech/news/article/g=96958A9C93819696E3EBE290868DE0E3E2E6E0E2E3E28698E3E2E2E2;da=96958A88889DE2E0E2E5EAE5E5E2E3E7E3E0E0E2E2EBE2E2E2E2E2E2]]

-¼²¬¡¦¸åÄ®¤ò°Ö¤á¤ë(?)²ñ
--À¸ * 21ÇÕ / 3¿Í = 7 [ÇÕ/¿Í]
--¿ì¤¤¤Ã¤Æ»Ø¿ô´Ø¿ôŪ¤Ë¤¯¤ë¤è¤Í

**2010-04-20 [#ad793772]
**2010-04-20 [#i46c8317]
***dijkstra's algorithm with F-heap [#xe3774f5]
-LMNtal¤Ë¥¨¥ó¥³¡¼¥ÉÃæ
-Ëì¤ò»È¤¨¤Ð¤¦¤Þ¤¯¤Ç¤­¤½¤¦¤Êµ¤¤¬¤·¤Ê¤¯¤â¤Ê¤¯¤â¤Ê¤¤
-memo
 - : ¾ï¤Ë̤«Çû¤ÎÊÑ¿ô
 + : ¾ï¤ËÃͤò«Çû¤µ¤ì¤¿ÊÑ¿ô
 ? : default. ¤É¤Ã¤Á¤Ë¤â¤Ê¤ê¤¦¤ë¡£
 int       : integer number
 dense_int : array index¤È¤·¤Æ»ÈÍѤǤ­¤ë
 number    : number
 float     : float
 any       : any 

**2010-04-19 [#ad793772]
**2010-04-19 [#gb03c205]
***chr_path_N [#z8a82d70]
-All Pairs Shortest Path(APSP) problem¡§Á´ÂкÇû·ÐÏ©ÌäÂê
-EPSON(Quad, 2.6GHz, RAM4GB)¤Ç¼Â¸³¤·¤Æ¤ß¤¿
--¥¯¥¨¥ê¤ÏÍ­¸þ´°Á´¥°¥é¥Õ
--node:edge = n:(n^2-n)/2
|node|10|20|30|40|50|60|
|time|0.04|3.34|56.94|430.48|2075.18|7498.03|
|t/(n/10)^7|0.04|0.2611|0.2603|0.2627|0.2656|0.2678|

--O(n^7)¤Ë¤Ê¤Ã¤Æ¤¿
 e(I,J1,A),e(J2,K,B) :- uniq(I,J1,K,A,B), ... | ... .
   n  n      n  n            n  n n
--º£²ó¤Ï½Å¤ß¤ÏÁ´¤Æ1¤Ê¤Î¤Ç¡¢A,B¤Ë¤Ï1¤·¤«¤³¤Ê¤¤(2°Ê¾å¤Ë¤Ê¤ë¤È1ËÜÌܤΥ롼¥ë¤Ç¾Ã¤µ¤ì¤ë)

***ÎãÂêÁý¤ä¤· [#nfd53792]
-¥À¥¤¥¯¥¹¥È¥é
--¥Õ¥£¥Ü¥Ê¥Ã¥Á¥Ò¡¼¥×¤òÍѤ¤¤¿ºÇŬ²½¤ÎÏÀʸ¡¢Æɤó¤Ç¤ß¤Æ¤ë
-¤¢¤È¤ÏUnion find¤È¤«¤¬¤¤¤¤¤«¤Ê

**2010-04-18 [#ad793772]
**2010-04-18 [#qbeaf19a]
***CHR book [#ybcdcab0]
-¥Ñ¥¹À°¹ç¡¢¥¢¡¼¥¯À°¹çÊÕ¤ê¤òÆɤó¤À

**2010-04-17 [#ad793772]
**2010-04-17 [#kd995be2]
***Propagation¤Èuniq¤Î°ã¤¤ [#k2da0ebc]
-CHR¤Ç¤è¤¯¤¢¤ë·ÐÏ©´Ø·¸¤Î¿ä°ÜÊÄÊñ¤òµá¤á¤ëÎã
 p1 @ e(X,Y) ==> p(X,Y).
 pn @ e(X,Y), p(Y,Z) ==> p(X,Z).
-propagation rule¤ÏƱ°ì¤Î''À©Ìó''(e¤äp)¤ËÂФ·¤Æ¹â¡¹°ì²óŬÍѤ¬µö¤µ¤ì¤ë¤¿¤á¡¢¤³¤ÎÎã¤Ëe(1,1)¤òÍ¿¤¨¤ë¤È»ß¤Þ¤é¤Ê¤¤
-uniq¤ÏÊÑ¿ôX,Y¤ÎÁȤò¸«¤Æ¤¤¤ë¤Î¤Ç¡¢e(1,1)¤òÍ¿¤¨¤Æ¤â»ß¤Þ¤ë
-¤À¤«¤éÎãÂê¤Ë¤è¤Ã¤Æ¤Ï¡¢LMNtal¤ÎÊý¤¬·×»»²ó¿ô¤¬¾¯¤Ê¤¤½ñ¤­Êý¤Ç¤­¤ë¡¢µ¤¤¬¤¹¤ë



**2010-04-16 [#ad793772]
***ubuntu¤Çchr¤òÆ°¤«¤»¤¿ [#wfab9b91]
-library²¼¤Ëchr¥Ç¥£¥ì¥¯¥È¥ê¤Èchr.pl¤¬Ìµ¤«¤Ã¤¿¤Î¤¬¸¶°ø
-¤¿¤Àñ½ã¤Ë¾¤Îswi-prolog¤«¤é»ý¤Ã¤Æ¤­¤Æ¤â¤¦¤Þ¤¯Æ°¤«¤Ê¤¤¤³¤È¤¬Â¿¤¤
-¤È¤ê¤¢¤¨¤º¡¢°Ê²¼¤ÎÁȤ߹ç¤ï¤»¤Ê¤éÆ°¤¤¤¿
+http://www.swi-prolog.org/download/stable¤«¤é¼¡¤Î2¤Ä¤òÍî¤È¤·¤Æ¤¯¤ë
--¥ê¥¹¥È¤Î¾å¤ÎÊý¤Ë¤¢¤ëLinuxÍѤΥХ¤¥Ê¥ê
--²¼¤ÎÊý¤Ë¤¢¤ëSources
+Sources¤ÎÊý¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë
 % tar zxvf pl-<version>.tar.gz
 % cd pl-<version>/src
 % ./configure
 % make
 % [su root]
 % make install
--¤³¤³¤Ç¤È¤ê¤¨¤¢¤ºSWI-prolog¤¬Æ°¤¯¤«³Îǧ
 % pl
 Welcome to SWI-Prolog ...(ά)
 ?- 
--chr¥é¥¤¥Ö¥é¥ê¤òÆɤ߹þ¤ó¤Ç¤ß¤ë
 ?- [library(chr)].
--¼¡¤Î¤è¤¦¤Ê¥¨¥é¡¼¤¬½Ð¤¿¤échr¥é¥¤¥Ö¥é¥ê¤¬Ìµ¤¤
 ERROR: source_sink `library(chr)' does not exist
+¥Ð¥¤¥Ê¥ê¤ÎÊý¤«¤échr¥Õ¥©¥ë¥À,chr.pl¤ò»ý¤Ã¤Æ¤¯¤ë
--pl-<version>.rpm¤òŬÅö¤Ê¾ì½ê¤Ë²òÅà
--usr¥Õ¥©¥ë¥À¤¬½ÐÍè¤ë¤Î¤Ç¡¢
 ²òÅष¤¿¾ì½ê/usr/lib/pl-<version>/library/²¼¤Îchr¥Õ¥©¥ë¥À¤Èchr.pl
--¤ò¡¢
 /usr/local/lib/pl-5.8.3/library/
--¤Ë¥³¥Ô¡¼¤¹¤ë
+Sources¤ËÂФ·¤ÆºÆÅÙ¤Î1.¤Î./configure°Ê¹ß¤ò¼Â¹Ô
--prolog¤òµ¯Æ°¤·¡¢
 ?- [library(chr)].
 % library(chr) compiled into chr 0.27 sec, 3,866,648 bytes
 true.s
--¤È¤Ê¤Ã¤¿¤é¤á¤Ç¤¿¤·¤á¤Ç¤¿¤·
 

**2010-04-15ÈÉ¥¼¥ß¸å [#ad793772]
**2010-04-15ÈÉ¥¼¥ß¸å [#i09df131]
***¼¡½µ¤Þ¤Ç¤Ë [#m614fe25]
--chr_path.lmn¤Î¬Äê¡¢¥ª¡¼¥À¡¼·×»»¤Ê¤É¤â¤í¤â¤í
---warahall's algorithm
--benchmark set¤ÎÍÑ°Õ

**2010-04-15 [#ad793772]
**2010-04-15 [#t489fe6c]

***-ÈÉ¥¼¥ßÍÑ¡§¤É¤ó¤ÊÎãÂê¤òÁ᤯¤·¤¿¤¤¤Î¤« [#af00bbda]
--¥í¥Ã¥¯¥Õ¥ê¡¼¤Ç¼ÂÁõ
---STM¥Ù¡¼¥¹¡©
--ºÇ½é¤Ï0or1²Á¤Î¥¢¥È¥à¤ä¥ê¥¹¥È¤ò°·¤¦ÎãÂê¡ÊËì̵¤·¤Ç¡Ë
--CHRŪ¤Ê²¿¤«
---ºÇû·ÐÏ©¡¢
--NESL¤ÎÎãÂê¤Ï¤É¤¦¤«
---quicksort¡§Æþ¤ì»Ò¥Ç¡¼¥¿ÊÂÎó
&br;
***ubuntu¤Çlibrary(chr)¤¬¸Æ¤Ó½Ð¤»¤Æ¤¤¤Ê¤¤ [#hc7d5e97]
-Ä´¤Ù¤ë


**2010-04-14 [#ad793772]
**2010-04-14 [#bc9ae2ef]
***ubuntu [#b57d74f1]
 $ uname -a ¤Ç32or64¥Ó¥Ã¥ÈÈǤ«¸«Ê¬¤±¤é¤ì¤ë
***Let's Note¤¬Ä¾¤Ã¤¿ [#rc79df66]
-¥Ñ¥Ê¥½¥Ë¥Ã¥¯½¤Íý¹©Ë¼¡¢¥¤¥ó¥Ð¡¼¥¿¤Î¸Î¾ã(Í­ÎÁ)¤À¤Ã¤¿¤±¤É¡¢±Õ¾½¥Ñ¥Í¥ë¤Þ¤Ç¸ò´¹(̵ÎÁ)¤·¤Æ¤¯¤ì¤¿¡¢½ÐÍè¤ë

**2010-04-13 [#rc509ece]
***SLIM¤Îrule trial¤Ë¤«¤«¤ë»þ´Ö(Ä̾ï¼Â¹Ô) [#u0816253]
-time_optimized_slim
-¼ê»ý¤Á¤ÎÎãÂê¤Ç¤¶¤Ã¤È¼è¤Ã¤Æ¤ß¤¿¡¢ÊÔ½¸Ãæ
-¤¢¤Ã¤Æ¤¤¤ë¤ó¤À¤í¤¦¤«


**2010-04-09 [#rc509ece]
-ÀèÀ¸¤«¤éKLIC¤ä¤éCHR¤ò»È¤¨¤ë´Ä¶­¤ò¤É¤³¤«¤ËÍÑ°Õ¤·¤è¤¦¤È¤Î¤ªÏÃ
--pave¤Ë¤ÏKLIC¤¬Æþ¤Ã¤Æ¤¤¤¿¡¢¤Ç¤â¤¦¤Þ¤¯Æ°¤«¤Ê¤«¤Ã¤¿
-NIOLO¤ËÆþ¤ì¤Æ¤ß¤è¤¦¤È¤·¤¿
--ÁªÂò»èÁª¤ó¤Ç¤¤¤Ã¤¿¤é¡¢ÅÓÃæ¤Ç̵¸Â¥ë¡¼¥×¤·¤¿¤Î¤Çº£Æü¤ÏÊüÃÖ
--¤Ç¤âgocho¤Îubuntu¤Ç¤Ï¥¤¥ó¥¹¥È¡¼¥ë¤Þ¤Ç¤Ï¤¦¤Þ¤¯¤¤¤Ã¤Æ¤¿¡¢¥Ñ¥Ã¥ÁÅö¤Æ¤ì¤Ð¤¦¤Þ¤¯¤¤¤¯¡©
-NESL¤ÎÏÀʸ¤ÎÆɤßÈô¤Ð¤·¤Æ¤¿¤È¤³¤í¤ò»×¤¤½Ð¤·¤¿¡¢ÌÀÆüÆɤà
--¤ä¤Ã¤Ñ¤ê¥¯¥¤¥Ã¥¯¥½¡¼¥ÈŪ¤ÊÎãÂê¤ò¤ä¤Ã¤Æ¤ß¤¿¤¤¤È¤Ï»×¤¦


**2010-04-08 [#rc509ece]
-M2¥Ú¡¼¥¸ºî¤Ã¤Æ¤ß¤¿ [#f6ca3e7f]
-ubuntu¤ò¿·¤·¤¤PC¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤ß¤¿ [#e4d9ba88]
-KL1¤òÆ°¤«¤·¤Æ¤ß¤ë [#hbc9ed25]
--KLIC¤Î¼ÂÁõ¤Ë¤Ä¤¤¤Æ
---Inside KLIC¡ÊKLIC¤ÎHP¤«¤é¡ËÆüËܸì


&aname(word);
*¤¦¤á¤­ [#u845d424]
**2010-08-05 [#d449558d]
&aname(face);
-2010-08-05¹¹¿·
-uedaÀèÀ¸?
 u: :-) or ±Ô°ÕÀ½ºîÃæ
-M2
 i: (¢Ì ¡£¢Ì)
 s: (~¦Ø~ )
 a: (¡¦¢Ü¡¦^)
 o: (¡®¡Á¡®)
 g: (¡­^§Õ^)
 m: (¡®¢Ï¡­)
-M1
 y: ¡ã(¡¦¦Ø¡¦ )¡ä¡¿
 y: (¡®¸ý¡­ ) or (¡®¡£¡­ )
 k: (o-¦Ø-o )
 s: (¡÷¢à¡÷ )
 s: (¢á¦Ø¢á )
 q: (^»®^ )
 n: (¡­¡÷_¡÷¡® ) ¢ª (¡­¡¡_¡¡¡® ) ¢ª (¡­_¡® ) ¢ª (No Image ) ¢ª (¡­¡ü_¡ü¡® )v 
 t: (¡®¦Å¡­ ) or ( ¡®§Ù¡­)
//-b4
// m: (¢è)
// n: (^(¡ü¡ü)^ )
// m: (¡¦§ê¡¦ )
// x: (¡û¡±¡¼¡±¡û ) or (o¡±_¡±o )
// others: (@_@)

**2010-04-09 [#pecf95bc]
-½Õ¤À
-ÇϾì±Ø¼þÊÕ¤¬¿§¡¹ÊѤï¤Ã¤Æ¤Æ¤Ó¤Ã¤¯¤ê
-½¢¿¦³èÆ°½ªÎ»¡¢¸¦µæ¤¬¤ó¤Ð¤é¤Ê¤¤¤È
--»³Ì¾ÀèÀ¸¤ÏÍ¥¤·¤«¤Ã¤¿¡¢Ê¸Ì̤¬hiroshi¤ÈƱ¤¸¤À¤Ã¤¿¤¬¡¢¤Ç¤âÍ¥¤·¤«¤Ã¤¿

**2010-04-08 [#pecf95bc]
-¤¬¤ó¤Ð¤ê¤¿¤¤¡£