Raku:一种算入无限(第二部分)的语言

2026年8月30日1 次浏览来源:Dev.to阅读原文

在这个部分,让我们从另一个角度审视无限的序列:让我们开始收集值.

首先,Raku有一套内置的常规和.

当你需要收集数据时,它们就有用。

例如:程序打印出45到55之间的几个随机数字(或者在运气不好时没有).

你不知道它会选多少数字,但至少有一定限度:循环体运行次数只有50次,随机数还不到100个.

因此,是时候在代码中引入一些无限的.

下个程序扫描了数字,但没有明确显示用户以后会使用多少个.

例如,第二行要求前五个项目,这就是真正的计算发生的时候: 出人意料的是,与无限合作使得代码对读者更加清晰.

你只是描述一下该如何处理数据,但省略了长度.

下一个片段字面上写着“将数字转换成正方形”。

将这个规则应用到无限(但懒惰)范围中,只有这样,你才会采取前五个要素.

再次注意,您首先将动作应用到无限序列中,然后才切到所需的大小.

反之亦然(当然,如果你知道何时停止,你也可以这样做;但有时你需要的是结果条件而不是来源条件).

程序打印:下两行显示类似方法:等,如何?

加上或乘以所有整数,然后取出三角变位器结果之一的最初几个元素?

没问题 几个三角形的元器件仅用于计算前几个项的值,而不用于整个无限:

1.

这里有一个稍微复杂一些的程序,但原理是一样的,你定义了一个规则,允许它为任意几个项目工作: 本案的功能是匿名指点块。

程序打印出帕斯卡的五行三角形: 顺便说一句,你也可以要求Raku把所有东西都加起来,然后得到正确的答案:.

我们一次又一次地看到,在Raku, 事情是这样的,不是黑洞。

他们按照你的任务行事 尽管其中的一个操作范围是无限的,但结果仅限于前三个项目,因为左操作是相当可衡量的: 但是,没有人能阻止我们在两边拥有无限的射程,甚至像我们早些时候所做的那样,对这些射程进行一些计算。

只要确保你不会服用太多: 此程序用平方打印数字 : 如果你好奇为什么,删除 并确认这个怪异的构造 只是给你同样的数字两次: 作为家庭作业,在不使用元算法的情况下重写最后一个例子.

分享