逻辑简单:
考虑:
: 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 !
(我认为(
你在互联网上找不到任何东西来解释这一点。如何显示矩阵的内容?
如果您想打印整个矩阵的内容,可以执行以下操作:
: .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
100 0 0 test ! ok
400 1 0 test ! ok
0 0 test @ . 100 ok
1 0 test @ . 400 ok