Как я должен думать о классах продукта Scala?

Пакет "scala" имеет много классов, названных продуктом, Product1, Product2, и так далее, до Product22.

Описания этих классов, конечно, точны. Например:

Product4 is a cartesian product of 4 components

Точный, да. Коммуникативный? Не так. Я ожидаю, что это - идеальная формулировка для кого-то, кто уже понимает смысл "декартова произведения", используемого здесь. Для кого-то, кто не делает, это звучит немного круговым. "Ах да хорошо конечно, Product4 является продуктом бормотания 4 бормотаний бормотания".

Помогите мне понять корректную точку зрения функционального языка. Что смысл "декартова произведения" использует здесь? Что делает участники "проекции" классов продукта указывают?

61
задан 19 August 2009 в 22:48

1 ответ

Я думаю, что кто-то мог бы чувствовать себя смущенным для Product просто работы как членский итератор, точно так же, как я сделал.

На самом деле, я думаю в 2019, что все знают, каково Декартово произведение . Но где Декартово произведение в Кортеже? Я знаю, имеем ли мы {a, b, c}, и {1,2,3} мы доберемся {a, 1}, {a, 2}... {c, 3}. Но когда мы сталкиваемся с Tuple2 (a, 1) мы просто имеем (a, 1), как можно возразить продукту?

Так позволяют нам рассматривать классы, которые реализуют Product как объявления. Если класс A (Строка, Интервал, дважды) implentment Product3, мы рассматриваем класс как результат Декартово произведение из (Строка, Интервал, дважды), таким образом Вы знаете, что можно использовать _1 _2 _3 метод теперь.

0
ответ дан 31 October 2019 в 16:07

Другие вопросы по тегам:

Похожие вопросы: