🎄 16/25. Perl 6 中两点之间的距离

欢迎来到 Perl 6 One-Liner Advent Calendar 的第16天!今天,我们将解决一个简单的问题,并找到平面上两点之间的距离。

这是一个有助于制定任务的插图。我们的目标是找到A点和B点之间的距离。

img

为了使答案更加透明和易于检查,我选择了AB线段,使得它是一个带有边长为3和边长为4的直角三角形的斜边。在这种情况下,第三边的长度将是5。

所以,这是答案:

1
say abs(5.5+2i - (1.5+5i))

代码使用了复数,一旦你移动到一个复平面,你就可以从平面上两点之间的距离等于这两个数相减的绝对值这一事实中获益。

在这种情况下,其中一个点是复平面上的点 5.5+2i,第二个点是 1.5+5i。在 Perl 6 中,您可以像在数学中一样编写复数。

如果没有复数的内置支持,你必须明确地使用毕达哥拉斯定理:

1
say sqrt((5.5 - 1.5)² + (2 - 5)²)

家庭作业。修改 Rakudo 的 grammar 以允许以下代码:

1
say √((5.5 - 1.5)² + (2 - 5)²)

这就是今天的一切。明天再来看看另外一个 Perl 6 单行或两个!