62 functional-programming scala
"scala"包有许多名为Product,Product1,Product2等的类,直到Product22.
这些类的描述肯定是准确的.例如:
Product4 is a cartesian product of 4 components
Run Code Online (Sandbox Code Playgroud)
准确,是的.交际?没那么多.我希望这对于已经理解在这里使用的"笛卡儿产品"感的人来说是完美的措辞.对于没有的人来说,这听起来有点循环."哦,是的,还有当然产品4是喃喃的4个产品咕哝,喃喃自语."
请帮助我理解正确的功能语言观点.这里使用的"笛卡尔积"是什么意思?产品类的"投影"成员表示什么?
oxb*_*kes 52
其他人都去了数学,所以为了以防万一,我会选择愚蠢的答案!你有一个简单的汽车,有一个变速箱,一个方向盘,一个加速器和一些乘客.每个都可以变化:你在哪个档位,你在哪个方向转向,你的脚是"在地板上"等.变速箱,转向,加速器等因此是变量,每个都有自己的一组可能的值.
每组中的笛卡尔积基本上都是您的汽车可能存在的所有状态.所以一些可能的值是:
(gear, steer, accel, pssngers)
--------|---------|----------|---------
(1st, left, foot down, none)
(neutral, straight, off, the kids)
Run Code Online (Sandbox Code Playgroud)
笛卡尔积的大小当然是每组可能性的乘积(乘法).因此,如果你的车有5档(+倒档+空档),转向是左/直/右,加速器开/关和最多4名乘客,那么有7 x 3 x 2 x 4或168种可能的状态.
最后一个事实是笛卡尔积(顺便说一下Rene Descartes命名)具有乘法符号的原因x
Dan*_*ral 31
"具体地,两组X的笛卡尔乘积(例如x轴上的点)和Y(例如y轴上的点),表示为X×Y,是所有可能的有序对的集合,其中第一组component是X的成员,其第二个成分是Y的成员(例如整个xy平面)"
也许通过了解谁从中获得更好的理解:
直接已知子类:Tuple4
或者通过知道它" 扩展产品 ",通过扩展Product自身知道其他类可以利用它.我不会在这里引用它,因为它相当长.
无论如何,如果你有类型A,B,C和D,那么Product4 [A,B,C,D]是一个类,其实例是A,B,C和D的笛卡尔积的所有可能元素.字面意思.
当然,除了Product4是Trait,而不是一个类.它只是为四个不同集合的笛卡尔积的类提供了一些有用的方法.
| 归档时间: |
|
| 查看次数: |
14185 次 |
| 最近记录: |