下面的代码使用附加的物理引擎模拟三维世界。因为创建新的 3D 对象在内存方面是沉重和昂贵的,一旦创建它们就会是相同的,只是从一个地方移动到另一个地方。想象一个有很多岩石、树木、灌木和不同纹理的 3D 世界。只有一种岩石,一棵树,一丛灌木(它们可以共享一些纹理),只要记住它们的位置,我们就节省了大量的内存,我们仍然能够用它们填充相当大的地形:
jshell>List<Expense>travelExpenses=List.of(newExpense(10,Currency.EUR,"Souvenir from Munchen"),newExpense(10.5,Currency.EUR,"Taxi to Munich airport"),newExpense(20,Currency.USD,"Taxi to San Francisco hotel"),newExpense(30,Currency.USD,"Meal"),newExpense(21.5,Currency.GBP,"Taxi to San Francisco airport"),newExpense(10,Currency.GBP,"Souvenir from London"));
独眼巨人 react 的维护者 John McClean 演示了 TCO 在 Fibonacci 序列中计算数字的用法 https://gist.github.com/johnmcclean/fb1735b49e6206396bd5792ca11ba7b2。代码简洁易懂,基本上是从初始状态 a 和 b 开始累加斐波那契数,*f(0)=0*、*f(1)=1-*,应用*f(n)=f(n-1)+f(n-2)*函数: