这个 APL 黄金比例代码是如何工作的?

Iku*_*ura 3 apl

这是 Dyalog APL 中黄金比例的代码:

1+?÷?=1
Run Code Online (Sandbox Code Playgroud)

我不明白。“1 加 compose rec 重复等于 1”没有任何意义。

小智 5

的操作数?+?÷(左边)和=(右边)。它的论据都是1.

?函数右操作数是“直到”,它重复左操作数,直到右操作数,用最后两个结果调用,给出1. 所以,这里?=是“重复直到相等” - 找到不动点。

?使用与其左参数相同的左参数调用其左操作数(因此总是1),但使用新结果循环右操作数。
所以,+?÷被称为二元,这与 dfn 相同{? + ÷?}?这里总是相同的 1 因为这是?.

总而言之,这段代码1 + ÷last一直执行到最后一个结果和这个结果相等。在线试试吧!

Dyalog APL ]box on -trains=tree

  ? 
 ???
 ? =
??? 
+ ÷ 
Run Code Online (Sandbox Code Playgroud)