Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2009-01-02

Getting Started in *LISP (18)

| 23:27 | Getting Started in *LISP (18) - わだばLisperになる を含むブックマーク はてなブックマーク - Getting Started in *LISP (18) - わだばLisperになる

今回は3.5.2から再開です。

3.5.2 Spreading Values across the Grid

スキャニングのオペレーションには他にスプレディッングがあるとのこと。

スプレディッングとは、指定した一点を列か行に押し広げることで、*Lispの場合は、2次元以上にも構成できるのでこの表現には語弊があるものの、方法論としては同じとのこと。

スプレディッングには、spread!!を利用する。

(in-package :*lisp)
;; 256 x 256プロセッサを利用
(*cold-boot :initial-dimensions '(8 8))

(ppp (self-address!!)
     :mode :grid
     :end '(8 3)
     :format "~3S ")
;>>
;       DIMENSION 0 (X)  ----->
;  
;  0   8   16  24  32  40  48  56  
;  1   9   17  25  33  41  49  57  
;  2   10  18  26  34  42  50  58  
;=>NIL

という構成のグリッドがあるとする。

この構成に(spread!! (self-address!!) 0 3)適用する。

0は0次元、3は列になり、0次元の3列目を行全体の値とすることを指示している。

(ppp (spread!! (self-address!!) 0 3) ;; Dimension 0, Coord. 3
     :mode :grid
     :end '(8 3)
     :format "~3S ")

;>>     DIMENSION 0 (X)  ----->
;  
;  24  24  24  24  24  24  24  24  
;  25  25  25  25  25  25  25  25  
;  26  26  26  26  26  26  26  26  
;=> NIL

次回、3.5.3から再開

ゲスト



トラックバック - http://cadr.g.hatena.ne.jp/g000001/20090102