锁定老帖子 主题:面向变量编程
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-18
huangyiiiiii 写道 c 里面 define 的害处就忘了?莫非时代在倒退,代码生成的技术又走上台面了。
静态语言的意识形态已无法禁锢自由的心…… 推倒柏林墙的时候到了! ——以上为KUSO^^ |
|
返回顶楼 | |
发表时间:2007-01-18
实在不错~`
换了种思维 |
|
返回顶楼 | |
发表时间:2007-01-19
撇开具体的编程语言(无论命令式语言也好,函数编程语言也罢),那么“变量”这个概念是个数学概念。
在数学里,变量这个概念本来就比较奇妙;作为数学的一个分支,例如代数,或者现代的数理逻辑,变量的概念依然是存在的。 现在回到我们说的编程语言:我们都知道命令式语言(例如java)里有变量这样的概念。而你说“函数编程语言”里没有变量这个概念。让我们继续讨论: “函数编程语言”,从名字上就包含了“函数”这样一个数学概念。从数学上看,没有变量的函数是常量函数。而常量函数只不过是一种特殊的函数罢了。 我对函数编程语言没有深入去了解过。所以我只好依靠上面的推理和你讨论,呵呵。我的另外一个推理如下: 如果函数编程语言里没有变量,那么如何表达数学里的变量(编程免不了计算问题,无论你怎么计算,都要解决一个“可重复可替换的问题”,所以变量是必然的----无论你怎么定义变量的含义)? 我的回答是:即使是FP依然存在变量,或者说,那已经是另外一种变量了(和命令式的编程语言相区别)(具体是怎么会事,我暂时不清楚,它有可能是叫另外一个名字,但是从观念上看,满足“广义的变量”的特征) 所以你说的“变量概念与lambda演算就是个冲突”,意思是命令式语言里的“变量概念与lambda演算就是个冲突”吧? 如果A等于B,并且B等于C,那么A等于C 假如“函数编程语言里没有变量”,那么如何表达上面的普遍的"变量公理"呢? 你不要告诉我说:函数A等于函数B,并且函数B等于函数C,所以函数A和函数C不等 没有变量的编程语言,就如同说“没有圆心的圆”一样,是不存在的(这里说的变量是广义的变量)。 |
|
返回顶楼 | |
发表时间:2007-01-19
NND,如今都开始玩图灵完备和 lambda 演算了,有谁能给个定义给我,告诉我啥叫“图灵机和 lambda 演算是等价的”?
|
|
返回顶楼 | |
发表时间:2007-01-19
我对你的变量的解释不敢同意哦
变量是对variable的翻译, 那么var 只有在脚本语言中有, 在c/java都会按类型声明的 在那些语言里 变量表示一段地址 也许有时eval会很有用 或者缺少不了 |
|
返回顶楼 | |
发表时间:2007-01-19
axgle 写道 撇开具体的编程语言(无论命令式语言也好,函数编程语言也罢),那么“变量”这个概念是个数学概念。
在数学里,变量这个概念本来就比较奇妙;作为数学的一个分支,例如代数,或者现代的数理逻辑,变量的概念依然是存在的。 现在回到我们说的编程语言:我们都知道命令式语言(例如java)里有变量这样的概念。而你说“函数编程语言”里没有变量这个概念。让我们继续讨论: “函数编程语言”,从名字上就包含了“函数”这样一个数学概念。从数学上看,没有变量的函数是常量函数。而常量函数只不过是一种特殊的函数罢了。 我对函数编程语言没有深入去了解过。所以我只好依靠上面的推理和你讨论,呵呵。我的另外一个推理如下: 如果函数编程语言里没有变量,那么如何表达数学里的变量(编程免不了计算问题,无论你怎么计算,都要解决一个“可重复可替换的问题”,所以变量是必然的----无论你怎么定义变量的含义)? 我的回答是:即使是FP依然存在变量,或者说,那已经是另外一种变量了(和命令式的编程语言相区别)(具体是怎么会事,我暂时不清楚,它有可能是叫另外一个名字,但是从观念上看,满足“广义的变量”的特征) 所以你说的“变量概念与lambda演算就是个冲突”,意思是命令式语言里的“变量概念与lambda演算就是个冲突”吧? 如果A等于B,并且B等于C,那么A等于C 假如“函数编程语言里没有变量”,那么如何表达上面的普遍的"变量公理"呢? 你不要告诉我说:函数A等于函数B,并且函数B等于函数C,所以函数A和函数C不等 没有变量的编程语言,就如同说“没有圆心的圆”一样,是不存在的(这里说的变量是广义的变量)。 parameter = variable ? 变量 = 变量 ? |
|
返回顶楼 | |
发表时间:2007-01-20
Elminster 写道 NND,如今都开始玩图灵完备和 lambda 演算了,有谁能给个定义给我,告诉我啥叫“图灵机和 lambda 演算是等价的”?
呵呵,等价么就是,你要一个程序,找一个人用图灵机实现和找一个人用lambda 演算实现,价钱是一样的。 我想他的意思是,computability上是等价的。 |
|
返回顶楼 | |