Red [needs: 'view]
num: ["1^/"]
k: num/1
view [
size 600x600
txt: text 30x50 k
ar: area 300x400 "" focus on-change[
txt/size: ar/size
len: length? split face/text newline
either (len - face/data) > 0 [
append num append form (len + 1) newline
face/data: len
][
remove back tail num
face/data: face/data - 1
]
txt/text: form num
]
do [ar/data: 0]
]
这个 Red 程序包含一个“文本面”和一个“区域面”。文本面包含序列号的垂直列表。当区域面添加换行符时,序列号将根据行数增加。并且当区域面中的一条线被移除时,序列号也会减少。
这是使用非反应性方法。有没有一种被动的方法来做到这一点?