2

考虑:

: cell-matrix
 create ( width height "name" ) over , * cells allot
 does> ( x y -- addr ) dup cell+ >r @ * + cells r> + ;

它是创建矩阵的定义,然后您分配如下值:

 5 5 cell-matrix test

然后你把价值观塞进去……他们在那里……

36 0 0 test !

(我认为)

在 Internet 上,您找不到任何可以解释这一点的东西。你如何显示矩阵的内容?

4

2 回答 2

3

如果要打印整个矩阵的内容,可以执行以下操作:

: .row ( addr u -- addr' u ) tuck 0 do @+ . loop swap cr ;
: .matrix ( u addr -- ) >body @+ rot 0 do .row loop 2drop ;

请注意,您cell-matrix不会保存行数,因此您必须将此数字提供给.matrix. 比如像这样:

2 3 cell-matrix foo
3 ' foo .matrix
于 2015-05-25T10:10:13.900 回答
2

逻辑上很简单:

100 0 0 test !   ok
400 1 0 test !   ok
0 0 test @ .     100 ok
1 0 test @ .     400 ok 
于 2015-05-24T11:58:29.323 回答