>>> import sys
>>> myprint = lambda i: sys.stdout.write(str(i) + '\n')
>>> foo = lambda i: not not (
... myprint(i),
... myprint(i+1),
... myprint(i+2),
... myprint(i+3),
... )
>>> foo(1)
1
2
3
4
True
0. GtkTextView 默认不支持 Undo/Redo 操作,编辑区写错了很麻烦。
1. 不想再写 UndoBuffer ,于是简单用 GtkSourceView 代替 GtkTextView,
2. 为了编辑区切换文章后能处理好 UndoStack,需要处理 .set_text()
3. 为了不派生新类和嵌套函数,希望多个动作能放在一个 lambda 里
于是就凑合了个伪多行 lambda
4. 同时希望不修改旧的 glade 文件
于是就搬出了 override
过程见附件 gjots2 补丁
2009/6/21 Jiahua Huang <jhuang...@gmail.com>:
> 多说无益,
>
太宅了,,,,什么情况下需要用此技?
--
http://zoomquiet.org
'''过程改进乃是催生可促生靠谱的人的组织!'''
一个人如果力求完善自己,就会看到:为此也必须同时完善他人. 一个人如果不关心别人的完善,自己便不可能完善!
> 0. GtkTextView 默认不支持 Undo/Redo 操作,编辑区写错了很麻烦。
> 1. 不想再写 UndoBuffer ,于是简单用 GtkSourceView 代替 GtkTextView,
> 2. 为了编辑区切换文章后能处理好 UndoStack,需要处理 .set_text()
> 3. 为了不派生新类和嵌套函数,希望多个动作能放在一个 lambda 里
> 于是就凑合了个伪多行 lambda
> 4. 同时希望不修改旧的 glade 文件
> 于是就搬出了 override
>
>
> 过程见附件 gjots2 补丁
>
> 2009/6/21 Jiahua Huang <jhuang...@gmail.com>:
>> 多说无益,
--
http://zoomquiet.org
'''过程改进乃是催生可促生靠谱的人的组织!'''
Time is unimportant, only life important!
不论多么特殊的场景, Pythonic 都可以放光!
> 这个,应该有更加KISS 的作法哪?
> 仿制 网页的Cookie ? 将操作序列记录到栈中就好的吧?
> 这种暗技,比较容易出问题的吧...
>
>> 0. GtkTextView 默认不支持 Undo/Redo 操作,编辑区写错了很麻烦。
>> 1. 不想再写 UndoBuffer ,于是简单用 GtkSourceView 代替 GtkTextView,
>> 2. 为了编辑区切换文章后能处理好 UndoStack,需要处理 .set_text()
>> 3. 为了不派生新类和嵌套函数,希望多个动作能放在一个 lambda 里
>> 于是就凑合了个伪多行 lambda
>> 4. 同时希望不修改旧的 glade 文件
>> 于是就搬出了 override
>>
>>
>> 过程见附件 gjots2 补丁
>>
>> 2009/6/21 Jiahua Huang <jhuang...@gmail.com>:
>>> 多说无益,
--
http://zoomquiet.org
'''过程改进乃是催生可促生靠谱的人的组织!'''
PE keeps evolving organizations which promoting people be good!
大妈啊,除掉 lambda,其他都 kiss 呀~
让 Gtk 程序的文本编辑区(GtkTextView)支持 Undo/Redo 基本上就是两个做法:
1. 自己写 UndoBuffer 或通过其他机制,用一个 UndoStack 来记录编辑操作
2. 省事点就直接用 GtkSourceView 代替 GtkTextView,
GtkSourceView 是 Gnome 的代码编辑控件,用法兼容 GtkTextView,但是增加了 Undo/Redo 和语法高亮等特性
所以比较起来, 我用的方法还是相对较 Kiss 的~
只是为了不用派生新类,直接利用 python 的动态特性修改类实例的方法
(即那个 self.textBuffer.set_text)
而 lambda 只是为了修改方法不用定义新函数~
理由和评估都很充分,增补到:
http://wiki.woodpecker.org.cn/moin/MiscItems/2009-06-22
不过,既然有了专门的支持 `GtkSourceView` 不用的话,有些亏...
当然当前的HACK 兼容性,维护性都还好,提醒关注是否有其它问题
- 其实就是 内嵌式函式了 ;-)
增补到:
http://wiki.woodpecker.org.cn/moin/MiscItems/2009-06-22
怪不得 AlbertLee 介绍 Haskell 时说,这是一个不用单元测试的语言;-)
FP 化的部分,只要确保是 纯函式,就可以充分信任 ;-)
--
http://zoomquiet.org
'''过程改进乃是催生可促生靠谱的人的组织!'''
Usage OOo to replace M$ Office; You can get the truely Freedom 4 software.
赞 Hong 总~