当前位置:  开发笔记 > 编程语言 > 正文

有变量真正起作用的编程语言吗?

如何解决《有变量真正起作用的编程语言吗?》经验,为你挑选了1个好方法。

例如,我会写:

x = 2
y = x + 4
print(y)
x = 5
print(y)

它会输出:

6 (=2+4)
9 (=5+4)

此外,是否有任何可能实际有用的情况?

澄清:是的,lambdas等解决了这个问题(他们是我如何得出这个想法); 我想知道是否存在默认的特定语言:不需要或不需要函数或lambda关键字.



1> Mark Rushako..:

Haskell会中途遇见你,因为基本上所有东西都是函数,但变量只绑定一次(意味着你不能x在同一范围内重新分配).

可以很容易地考虑y = x + 4变量赋值,但是当你看y = map (+4) [1..](这意味着从1向上为无限列表中的每个数字加4)时,现在是y什么?它是一个无限列表,还是一个返回无限列表的函数(提示:这是第二个.) 在这种情况下,当利用懒惰时,将变量视为函数可能是非常有益的,如果不是绝对必要的话.

实际上,在Haskell中,您的定义y是一个不接受任何参数并返回的函数x+4,其中x也是一个不带参数的函数,但返回值2.


在具有一阶函数的任何语言中,将匿名函数分配给变量是微不足道的,但对于大多数语言,您必须添加括号以指示函数调用.

示例Lua代码:

x = function() return 2 end
y = function() return x() + 4 end
print(y())
x = function() return 5 end
print(y())
$ lua x.lua
6
9

或者在Python中使用相同的东西(坚持使用一阶函数,但我们可以使用普通整数x):

x = lambda: 2

y = lambda: x() + 4

print(y())

x = lambda: 5

print(y())
$ python x.py
6
9

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有