12 混合单元格
12.1 调换单元格
为了混合单元格,需要能够将表中的任意两个单元格进行调换。如下:
;交换列表中的两个单元格: (define (swap-cell id/target id/source) (let* ([cell/t (hash-ref cells id/target)] [cell/s (hash-ref cells id/source)] [swap/t (cell (cell-id cell/s) (cell-bitmap cell/s))] [swap/s (cell (cell-id cell/t) (cell-bitmap cell/t))]) (hash-set! cells id/target swap/t) (hash-set! cells id/source swap/s)))
这里用散列表的优势就体现出来了,可以直接操作表中的两个值进行对调,整个表不用动。
12.2 交换所有单元格
接下来就可以进行整个散列表的单元格互换了。但