免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: asuka2001
打印 上一主题 下一主题

命名难,难于上青天 [复制链接]

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
231 [报告]
发表于 2012-02-18 11:31 |只看该作者
OwnWaterloo 发表于 2012-02-18 11:15
回复 225# starwing83

>> 另外这里不能写arg,arg映射的是argc和argv,...映射的是实际传给文件的参数, ...


擦,你个lua盲,...是lua51引入的!

可以H-M嘛……怕什么,实在不行可以这样:

local a:int, b:int, c:int = ...

当然这就不是lua了

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
232 [报告]
发表于 2012-02-18 11:33 |只看该作者
回复 232# starwing83

H-M这么高端的东西,我怎么理解得了……

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
233 [报告]
发表于 2012-02-18 11:35 |只看该作者
OwnWaterloo 发表于 2012-02-18 11:22
回复 228# starwing83

>> PS:那些我没忘啊,你难道没看出来重点么?重点是share啊!!!python需要box ...


可是目前看来,local-default够失策的,唯一用它的python和ruby,ruby作者已经明确表态这是最大的设计失误(网上看的),而python先加了global再加了nonlocal,实际很不方便(local情况是比较多,但是upvalue更自然——好吧这又是个人品味问题)

看看roberto的语录吧:“local-default肯定是错误的,也许global-default也是错误的。我们只是用了一种相对省事的方案而已”(大概意思吧),perl是个语言学家设计的。就必须显式说明到底是啥……(不过本质上还是global-default的)。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
234 [报告]
发表于 2012-02-18 11:36 |只看该作者
回复 233# OwnWaterloo


     只是理解的话并不难啊,H-M说白了就是类型推导,只不过是个特定的推导算法而已(先设置所有变量类型为any,根据已知信息迭代逐步减少any的数量,最后仍然是any的作为模板参数)

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
235 [报告]
发表于 2012-02-18 11:41 |只看该作者
回复 231# OwnWaterloo


    我就是再说这个问题啊!我认为不应该允许替换函数实现。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
236 [报告]
发表于 2012-02-18 11:41 |只看该作者
回复 234# starwing83

>> local情况是比较多,但是upvalue更自然——好吧这又是个人品味问题)

如果确实是local的情况比较多了,还有什么好说的呢……
ruby与lua作者的态度,就是你说的个人品味问题了……


喂…… 不要说python了…… 谈它伤心……
还是说lisp与C的本质不同吧……
至少到目前为止,谈到的那些不同都还没伤害到lisp的精髓……
退一万步,真的就像lua那样让+,-,*,/内建了又怎样? 再多内建几个又何妨……  lua有这么多操作符让你内建么……

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
237 [报告]
发表于 2012-02-18 11:42 |只看该作者
回复 236# starwing83

>>     我就是再说这个问题啊!我认为不应该允许替换函数实现。

包括lua里,也不应该允许?
那你说的很多项目都有自己的print实现又是? 他们是不是都用错了……

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
238 [报告]
发表于 2012-02-18 11:44 |只看该作者
回复 235# starwing83

我被haskell整怕了……

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
239 [报告]
发表于 2012-02-18 11:51 |只看该作者
回复 237# OwnWaterloo


    我们最后在讨论一遍local-default和global-default的问题吧。

事实上现在lua已经没有global的概念了。我们就当_ENV.x是global好了。

别的都讨论过了其实,我们考虑这么一个情景:

local x = 10
_ENV.x = 20
x = 30
_ENV.x = 40

这个情景(local/global混用)Python做不到(不好意思又讨论python了……)除非:
x = 10
global x = 20
x = 30
global x = 40
你注意到了么?几乎完全一样!你如果需要满足这种情形,你必须每次都写global,这一点local-default和global-default是一样的!(前提是Python再发布一个补丁支持这种语法…………好吧你又伤心了……)但是你发现没,其实第一种写法就多写了一个local而已……但是你知道_ENV.x是个语法糖,实际上如果不交叠使用,就会变成这样:

x = 10
x = 20


global x = 10
x = 20

和第一个几乎一样。这才是正儿八经的global-default(完全的和local-default等价,而python至少目前不是的),但是,除此以外,global-default在使用upvalue的时候**必须**采用nonlocal!

总结一下,其实区别很微妙:
- global default有三个关键字,global、nonlocal和不写,在表示三种情况时都是必须的,在特殊情况下每次赋值都得写。
- local default有三个关键字:local、_ENV.和不写,在表示三种情况下_ENV是可选的,在特殊情况下只有_ENV每次都得写。

稍微稍微简单了点点,不过付出的是每次local都得写,而local比较多,仅此而已。

所以你说是个人品位问题也没错,不过这个归根结底还是不太一样的。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
240 [报告]
发表于 2012-02-18 11:52 |只看该作者
回复 239# OwnWaterloo


    我也是,编译信息就没有看懂过……
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP