åã¯ãããªã¹ãã¢ããã®çµåå¾ãæ¸ãä¸ããã¨ãè¨ããã¦ã絶対ã«ã§ãã¾ãããã ã£ã¦ãã¾ã£ããæ¶ãã¦ãªãããæ¶ããåªåããã¦ãåã«ã¯ã¨ãã¦ãæ¶ããããã·ãã¢ãã§ã¯ãªãããã§ãã
ã§ãããããã³ãã¼ãã¼ã¨ãã¼ã«ãã³ï¼ã§ããã°3è²ï¼ãä¸ãããã¦ããããæ°åã¨èª¿åãããã¨ããªããæ°åå¾ã«ã¯æ¬¡ã®ãããªçµæãåºããã¨æãã¾ãã
ãªã¹ãã¢ããã®çµåå¾ã¯æ¬¡ã®éãã
- lislislisâList<List<List<X>>> ã«å¯¾ãã¦ã
List.flatten<X>(List.map(List.flatten<X>)(lislislis)) = List.flatten<X>(List.flatten<List<X>>(lislislis))
æ°åã¨èª¿åãããã¨ãã®åãããããã³ãã¼ãã¼ã¨ãã¼ã«ãã³ã§ã©ãããè¨ç®ãããããç´¹ä»ãã¾ããããã¾ãã¯ãåããªãã§æ®éã®è¨ç®ãããªãã®ãï¼ã§ããªãã®ãã®çç±ããã
çµµã使ãããæ¹æ³ããªã
ã¨ã«ããæ¶ããããªãï¼ èåã§è¨æ¶åãæ¸éãããã¨ããäºæ ããããã§ãããããããããåã¯çã¾ãã¤ãè¨æ¶åã極端ã«æªãã®ã§ããç¹ã«ãæ°åãã¢ã«ãã¡ãããã®ç¾ åãè¨æ¶ãããã¨ãè¦æãªã®ã¯ç çã§ãæ¥å¸¸çæ´»ã«ãéåã¨ä¸é½åãããã¾ãããå½ç¶ã«ãé·ãå ¬å¼ãæè¨ãããªãã¦ãã¨ã¯çµ¶æçã«ä¸å¯è½ã§ãã
ããããªããã®ç´è¦³ãã²ãããããããã¨ããã¨ããããªãã¨ãå ¨ç¶ãªãã®ã§ã2æ¡ã®æ´æ°ã®è¶³ãç®ããèªç¶å¤æã®ç¸¦æ¨ªçµåã¾ã§ãåããè¨ç®ããééããã«éè¡ããã®ã¯å°é£ã極ãã¾ãã
è¨æ¶åãã²ãããããªã人é*1ãæ®éã«è¨ç®ãè¡ãã«ã¯ãæ®éã¨ã¯éããã¼ã«ãå¿ è¦ã§ãããã®ãã¼ã«ã -- åè«è¨ç®ã«éå®ããã¾ãã -- åã®å ´åã¯çµµç®ï¼pictorial/graphical/diagrammatic calculationï¼ã§ãã
çµµç®èªä½ã¯ãæ¢ã«ç¥ãããææ³ãªã®ã§åã®ãªãªã¸ããªãã£ã¯ã¾ã£ããããã¾ããããçµµç®ï¼ãããï¼ãã¨ãã訳èªãèãã¦ä½¿ã£ã¦ããã¨ããã¯ãªãªã¸ãã«ããããã¾ãã ^^; 便å©ã§å¼·åãªçµµç®ã§ããã次ã®åé¡ãããã¾ãã
- çµµãããã¹ãã¨ãã¦æ¸ãä¸ãããããã¯ãã®éæ¹åã®ç¿»è¨³ãããªãã®ã¹ãã¬ã¹ã
- ãã¾ãçµµãæããªãã±ã¼ã¹ãããããã®ã¨ãã¯çå¼çè¨ç®ããããããªãã
ããã§ããçµµç® ââ ããã¹ãã«ããçå¼çè¨ç®ãã®ç¿»è¨³ãã¹ãã¬ã¼ãã«è¡ããããã«ãå³å¼é ï¼å·¦ããå³ï¼ãå¾¹åºããè¨æ³DOTNï¼Diagrammatic-Order Text Notationï¼ãèãã¾ããã
DOTNã®èª¬æ http://www.chimaira.org/docs/DOTN.htm ãæ¸ããé ã¨å¤å°å¤ãã£ã¦ããã¨ãããããã¾ãï¼ ä»¥åã¯ãé¢æã®çµåãé¢æã¨èªç¶å¤æã®çµåã«ã;;ãã使ã£ã¦ãã¾ããããã;;ããé »ç¹ã«ç»å ´ããã®ã§ãæè¿ã¯æ¼ç®è¨å·ãªãã®ä¸¦ç½®ã使ã£ã¦ãã¾ããã¤ã¾ãããF;;G ãããFGãããF;;α, α;;FãããFα, αFãã§ããèªç¶å¤æã®æ¨ªçµåãα*βãããαβãã¨æ¸ããã¨ãå¤ãã§ãããæ··ä¹±ãçããããªã¨ãã¯ãæ示çã«æ¼ç®è¨å·ãå ¥ãã¦ãã¾ããã©ã
DOTNã¯è±¡å½¢æåã¿ãããªãã®ã§ãããã¹ãã«ãã表ç¾ãè¦ã¦ãç´æ¥çã«ï¼é ã§èããã«ï¼çµµãã¤ã¡ã¼ã¸ã§ãã¾ããè¦ããã«ããçµµå³ ââ ããã¹ããã®è³å å¤æã®å´åãæå°åãããã¨ãç®çã«ããè¨æ³ã§ãçµµç®ã®è£å©ã¨ãã¦å©ç¨ããã®ã§ãã
ã¢ãã¤ãã®çµåå¾
ã¢ããã®çµåå¾ãDOTNã§æ¸ãã¨ï¼
- μF|μ = Fμ|μ
ããã¯ååç°¡åãªçå¼ã§ãããå®ã¯ãåã¯ãããæ¶ãã¦ãã¾ããã
ããããèªç¶æ°Nï¼æ®éã¯å¤ªåã§Nã¨æ¸ããé¢åãªã®ã§Nï¼ã®è¶³ãç®ã«é¢ããçµåå¾ã¯ããããã«åã§ãæ¶ãã¦ã¾ãã次ã®ã¨ããã§ãã
- ä»»æã® n, m, k âN ã«å¯¾ãã¦ã(n + m) + k = n + (m + k)
ãããçµµã«æãã¨ä¸ã®ããã«ãªãã¾ãã
N N N N N N
ï¼¼ ï¼ ï¼ ï¼¼ ï¼¼ ï¼
ï¼ ï¼ ï¼¼ ï¼
ï¼¼ ï¼ ï¼ ï¼¼ ï¼
ï¼ ï¼
ï½ ï½
ã¢ãããNã¨åæ§ã«ã¢ãã¤ããªã®ã§ãåãçµµãæãã¾ãããã ãã次ã®ããã«ç½®ãæãã¾ãã
- éåN ââ é¢æF
- æ¼ç®+ ââ èªç¶å¤æμ
次ããã®çµµå³ã§ãã
F F F F F F
ï¼¼ ï¼ ï¼ ï¼¼ ï¼¼ ï¼
μ ï¼ ï¼¼ μ
ï¼¼ ï¼ ï¼ ï¼¼ ï¼
μ μ
ï½ ï½
ãã®çµµã®å·¦è¾ºãä¸ä¸ã«åå²ãã¾ãã
F F F
ï¼¼ ï¼ ï¼
μ ï¼ (1)
----------------
ï¼¼ ï¼
μ (2)
ï½
(1)ã¨æ¸ãã¦ãã段ã横ã«è¦ã¦ããã¨ãμ Fãï¼å³ã®Fã¯ãFã¨ã©ãã«ãããç·ï¼ã¯ã¤ã¤ã¼ï¼ã«åºä¼ã£ããã¨ã表ãã¾ããå 容çã«ã¯é¢æFã®æçèªç¶å¤æã§ãï¼ã(2)ã¨æ¸ãã¦ãã段ãè¦ãã°ãμãã§ãããããã横æ£ã§ä¸ä¸ã«åºåã£ã¦ããã¾ããä¸ããä¸ã¸ã®çµµå³ããå·¦ããå³ã¸ã®ããã¹ãã«å¤ãã¦ã横æ£ã縦æ£ã«ç´ãã¨ï¼
- (μ F) | μ
åæ§ã«ãã¦å³è¾ºã®å³ã¯ï¼
- (F μ) | μ
ããããçå·ã§ã¤ãªãã°ãã¢ããã®çµåå¾ã§ãã縦æ£ãã並置ã®ã»ããæ¼ç®ã®åªå 度ãé«ãã®ã§æ¬å¼§ã¯çç¥ã§ãã¾ããä½åãªç©ºç½ãå ¥ããªããã°ãμF|μ = Fμ|μ ã
çµåå¾ã®æå表示
é¢æFã¨èªç¶å¤æαã®çµå Fα, αF ã¯åã³èªç¶å¤æã§ãé¢æFã®æçèªç¶å¤æãιFãèªç¶å¤æã®æ¨ªçµåã *ï¼ã¹ã¿ã¼ï¼ã§è¡¨ãã¨ï¼
- Fα = ιF*α
- αF = α*ιF
DOTNã§ã¯ãèªç¶å¤æαã®xæåããαx ã§ã¯ãªã㦠x.α ã¨æ¸ãã¾ãã対象xã¨é¢æFã®é©ç¨ã x.F ã¨æ¸ãã¾ãããã®æ¸ãæ¹ã§ãFα, αF ã®æå表示ã¯æ¬¡ã®èªç¶ãªå½¢å¼ã§ä¸ãããã¾ãã
- x.(Fα) = (x.F).α = x.F.α
- x.(αF) = (x.α).F = x.α.F
ã¾ããèªç¶å¤æã®ç¸¦çµå α|β ã®æå表示ã¯æ¬¡ã®ã¨ããã
- x.(α|β) = (x.α);(x.β) = x.α ; x.β
以ä¸ã®å ¬å¼ãçµã¿åãããã¨ãμF|μ = Fμ|μ ã®æå表示ã¯æ¬¡ã®ããã«ãªãã¾ãã
x.(μF|μ)
= x.(μF) ; x.μ
= x.μ.F ; x.μx.(Fμ|μ)
= x.(Fμ) ; x.μ
= x.F.μ ; x.μãã£ã¦çµåå¾ã¯ï¼
x.μ.F ; x.μ = x.F.μ ; x.μ
ä¸éã«åããã
DOTNã¨ãä¸éã§ã¡ã¸ã£ã¼ãªè¨æ³ã¨ã®éããåæãã¾ãã
- åã®å¯¾è±¡ã¯å°æåxã§ã¯ãªãã¦ã大æåXã§æ¸ããã¨ãå¤ãã
- x.μ ã§ã¯ãªã㦠μX ã¨æ¸ããã¨ãå¤ãã
- x.F ã§ã¯ãªã㦠F(X) ã¨æ¸ããã¨ãå¤ãã
- å°ã®çµåã¯ãf;g ã§ã¯ãªãã¦ãgã»f ã¨æ¸ããã¨ãå¤ãã
x.μ.F ; x.μ = x.F.μ ; x.μ ãã¡ã¸ã£ã¼ãªè¨æ³ã«ç¿»è¨³ããã¨æ¬¡ã®ããã«ãªãã¾ãã
- μXã»F(μX) = μXã»Î¼F(X)
åã®æè¦ã§ã¯ããã®ç¿»è¨³çµæã¯ãè¨å·ä¸ã®å¯¾ç§°æ§ãå´©ãã¦æ±ãã¦ã¤ã¤ãªãã§ãããã¾ã¼ããããããªãã
Xãéåã®ã¨ãããã®çå¼ã¯ãFFF(X)âF(X) ã¨ããé¢æ°ã«é¢ããçå¼ãªã®ã§ãéå FFF(X) ã®è¦ç´ ãzã¨ããã¨ã次ã®çå¼ãå¾ããã¾ãã
- μX(F(μX)(z)) = μX(μF(X)(z))
ãªã¹ãã¢ãã
é¢æFãèªç¶å¤æμã®å ·ä½ä¾ã¨ãã¦ãªã¹ãã¢ãããåããããã°ã©ã ã£ã½ãè¨æ³ã§æ¸ã表ããã¨ã«ãã¾ãããã
- F(X) -- åæ§æå List<X>
- F(f) -- ãããé¢æ° List.map(f) : List<X>âList<Y> ï¼f:XâYï¼
- μX -- å¹³å¦åé¢æ° List.flatten<X> : List<List<X>>âList<X>
å ã«å¾ãããä¸è¬çå ¬å¼ï¼çµåå¾ï¼ãããä¸ã®æ¸ãæ¹ã§å ·ä½åããã¨ï¼
μX(F(μX)(z))
â å ·ä½å
â¨
List.flatten<X>(List.map(List.flatten<X>)(lislislis))μX(μF(X)(z))
â å ·ä½å
â¨
List.flatten<X>(List.flatten<List<X>>(lislislis))ãã£ã¦ã
List.flatten<X>(List.map(List.flatten<X>)(lislislis))
= List.flatten<X>(List.flatten<List<X>>)(lislislis)
ã¯ããããã§ãªã¹ãã¢ããã®çµåå¾ã®ã§ãä¸ããã
*1:ç解åãä¸è¶³ãã¦ããããã âhttp://d.hatena.ne.jp/m-hiyama/20090721/1248137196