
获得徽章 0
Thunk是一种用于延迟计算的技术,常见于函数式编程语言中。
Thunk本质上是一个被包装的表达式,它延迟了这个表达式的计算,直到真正需要计算结果时才执行计算。通过thunk的方式,可以避免不必要的计算,提高程序效率。
下面是一个JavaScript中thunk的示例:
```javascript
// 创建一个thunk
const thunk = () => 1 + 2;
// 执行thunk
console.log(thunk()); // 输出3
```
在上面的例子中, `thunk`是一个函数,直到调用它的时候,`1 + 2`这个表达式才会被计算并返回结果3。
Thunk可用于实现:
1. **惰性计算(Lazy Evaluation)** - 只在需要时才计算
2. **缓存** - 缓存已计算的结果,避免重复计算
3. **函数柯里化** - 通过多次调用thunk来传递参数
4. **生成器(Generator)** - 生成器可视为一个包含状态的thunk
值得注意的是,在JavaScript中引入了Generator语法后,thunk的使用变少了,因为Generator可以更自然地表达惰性计算。但thunk概念依然广泛应用于函数式编程。
Thunk本质上是一个被包装的表达式,它延迟了这个表达式的计算,直到真正需要计算结果时才执行计算。通过thunk的方式,可以避免不必要的计算,提高程序效率。
下面是一个JavaScript中thunk的示例:
```javascript
// 创建一个thunk
const thunk = () => 1 + 2;
// 执行thunk
console.log(thunk()); // 输出3
```
在上面的例子中, `thunk`是一个函数,直到调用它的时候,`1 + 2`这个表达式才会被计算并返回结果3。
Thunk可用于实现:
1. **惰性计算(Lazy Evaluation)** - 只在需要时才计算
2. **缓存** - 缓存已计算的结果,避免重复计算
3. **函数柯里化** - 通过多次调用thunk来传递参数
4. **生成器(Generator)** - 生成器可视为一个包含状态的thunk
值得注意的是,在JavaScript中引入了Generator语法后,thunk的使用变少了,因为Generator可以更自然地表达惰性计算。但thunk概念依然广泛应用于函数式编程。
展开
评论
点赞
中本聪创建的比特币汇集了许多数学和软件概念。创建至今,比特币实验从未停止,一直在持续进化并定期更新。迄今为止,比特币已经证明了它的实用性,并掀起了金融和货币行业的革命,尤其是电子支付系统,因此在世界范围内广为接受。比特币自身能否存活到2140年比特币开采完的那一天尚未可知,但是,分布式、点对点以及非中心化限量供应货币的理念将永远留存。
评论
点赞
在计算机和网络出现以前,交易的媒介仅限于贵金属和纸币。其后,电子通信引入了黄金和白银无法直接参与的新交易方式。直到现在,只有中央控制的且可以电子传输的货币存在,它让控制者能自由决定基础货币的供应规模。当尼克松总统在外汇市场上废除美元与黄金的可兑换性时,就清楚地表明了这一点。越南战争和林顿·约翰逊的“伟大社会”就是靠电子印刷机稀释美元来资助的。物价上涨要过一段时间才会显现出来,紧接着,黄金的美元价格就显著地高于美元与黄金脱钩前大家普遍接受的35美元每盎司的固定价格。美元因此变成了一种自由浮动的、不断膨胀的货币。现在其他国家的货币也都如此。
展开
评论
点赞
一个针对比特币的代表性争论是中本聪为比特币设定的2100万的发行上限。一旦达到上限,怎么才能阻止有人提高上限呢?事实上无法阻止,但需要大多数矿工的合作才能实现这个修改。即便在大多数矿工同意解除限制的情况下,如果某些矿工不同意,也将会导致区块链的分叉。赞成取消限制的矿工将会使用一个版本的区块链,不赞成的矿工将会使用另外一个版本。实际上,这就会产生两种虚拟货币,即“原始比特币”和“量化宽松比特币”。长期来看,其中一个版本将会更久和更好地保持价值,并因此成为首选版本,而另外一个版本的价值将会下降。哪个版本将会把价值保持得更久,并留住比特币用户的兴趣?
展开
评论
点赞
哈定举了这样一个具体事例:一群牧民面对向他们开放的草地,每一个牧民都想多养一头牛,因为多养一头牛增加的收益大于其购养成本,是合算的,但是因平均草量下降,可能使整个牧区的牛的单位收益下降。每个牧民都可能多增加一头牛,草地将可能被过度放牧,从而不能满足牛的食量,致使所有牧民的牛均饿死。这就是公共资源的悲剧。
评论
2
比特币协议的目标是大约每10分钟创建一个交易区块。如果难度级别确定,更多的矿工加入或更精确地说随着每秒计算出更多的哈希值,10分钟以内发现所需摘要(哈希值)的机会就会增加。一定区块过后,比特币协议评估区块产生的速度:如果平均小于10分钟,就调高难度级别(即增加前几位0的个数,降低任何单个矿工获得特征摘要的概率);如果长于10分钟,那就降低难度级别(即减少前几位0的个数,以提高算出的概率)。
一旦矿工发现能产生正确哈希值的临时数,就将该区块广播出去,而其他的矿工则在验证后接纳它,并开始着手下一个区块。因此,比特币的运作方式就像每10分钟开一次奖的彩票游戏。谁会成为那个找到正确临时数的幸运矿工呢?
一旦矿工发现能产生正确哈希值的临时数,就将该区块广播出去,而其他的矿工则在验证后接纳它,并开始着手下一个区块。因此,比特币的运作方式就像每10分钟开一次奖的彩票游戏。谁会成为那个找到正确临时数的幸运矿工呢?
展开
2
1
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇沸点