Comment dois-je penser à la Scala de catégories de Produits?
Le package "scala", a un certain nombre de classes nommé Produit, Produit1, Produit2, et ainsi de suite, jusqu'à Product22.
Les descriptions de ces classes sont sûrement précis. Par exemple:
Product4 is a cartesian product of 4 components
Précis, oui. Communicative? Pas tellement. Je pense que c'est le parfait libellé pour quelqu'un qui comprend déjà le sens de "produit cartésien" qui est utilisé ici. Pour quelqu'un qui ne l'est pas, c'est un peu circulaire. "Oh oui, bien sûr Product4 est le mumble produit de 4 mumble-marmonne."
S'il vous plaît aidez-moi à comprendre la gêne fonctionnelle langue de point de vue. Quel est le sens de "produit cartésien" est utilisé ici? Ce qui ne le Produit des classes de "projection" les membres de l'indiquer?
Vous devez vous connecter pour publier un commentaire.
"L'ensemble de toutes les paires possibles d'éléments dont les composants sont membres de deux ensembles."
"Plus précisément, le produit Cartésien de deux ensembles X (par exemple les points sur l'axe des x) et Y (par exemple les points sur l'axe des y), notée X × Y, est l'ensemble de toutes les paires commandées dont la première composante est un membre de X et dont le second volet est un membre de Y (par exemple, l'ensemble du plan x-y)"
Peut-être de mieux comprendre peut être acquise par la connaissance qui en découle:
Direct Connues Sous-Classes:
Tuple4
Ou par le savoir "s'étend Produit", savoir ce que les autres classes peuvent en faire usage, en vertu de l'extension de la
Product
lui-même. Je ne vais pas citer ici que, bien que, parce que c'est un peu long.De toute façon, si vous avez des types A, B, C et D, puis Product4[A,B,C,D] est une classe dont les instances sont possibles tous les éléments du produit cartésien de A, B, C et D. Littéralement.
À l'exception, bien sûr, que Product4 est un Trait de caractère, pas une classe. Il fournit simplement quelques méthodes utiles pour les classes qui sont les produits cartésiens de quatre ensembles différents.
Tout le monde est passé pour les maths donc je vais aller pour la réponse idiote, juste au cas où! Vous avez une voiture simple, qui a une boîte de vitesses, le volant, l'accélérateur et le nombre de passagers. Ces peuvent varier: quelle vitesse êtes-vous, qui êtes-vous directeur, est à votre pied "sur le plancher" etc. La boîte de vitesses, le volant, l'accélérateur etc sont donc variables et chacun a sa propre ensemble de valeurs possibles.
Le produit cartésien de chacun de ces ensembles est fondamentalement tous les états possibles que votre voiture peut être en. Ainsi, quelques valeurs possibles sont:
la taille du produit cartésien est bien sûr le produit (multiplication) des possibilités de chaque ensemble. donc si votre voiture a 5 vitesses (+ inverse + neutre), le volant est à gauche/droite/droite, accélérateur est on/off et jusqu'à 4 passagers, alors il ya 7 x 3 x 2 x 4 ou 168 états possibles.
Ce dernier fait est la raison pour laquelle le produit cartésien (nommé d'après René Descartes par la voie) est le symbole de multiplication
x
De ce fil:
La projection permet d'obtenir l'instance de la " n " de la classe référencée par le Produit.
Un produit cartésien est un produit d'ensembles. Compte tenu des ensembles A et B, A x B ("Une croix B") est l'ensemble de tous les tuples (x, y) tels que x est A et y est b). Un produit cartésien peut être défini de types: les types de donnée A et B, A x B est le type de tuples (x, y) où x est de type A et y est de type B.
Donc Product4 est le type de n-uplets (w, x, y, z), où w, x, y, z sont des composants.
Je pense que quelqu'un pourrait se sentir confus pour
Product
fonctionne tout simplement comme un membre de l'itérateur, comme je l'ai fait.En fait, je pense que d'ici 2019, tout le monde sait ce qu'est un Produit Cartésien est. Mais où est Produit Cartésien dans un Tuple ? Je sais que si nous avons {a,b,c} et {1,2,3} nous allons get {a,1},{a,2}...{c,3}. Mais quand nous arrivons à travers Tuple2(a,1) nous avons juste (a,1), comment peut-on l'objet de Produit?
Donc, nous allons traiter les classes qui implémentent
Product
que des déclarations. Si la classe A(String, Int, Double) implentment Product3 , nous traitons la classe en tant que résultat d'un Produit Cartésien de (String, Int, Double), donc vous savez que vous pouvez utiliser_1
_2
_3
méthode maintenant.