scalabook

Форк
0
46 строк · 1.0 Кб

Plus

Формальное определение

Универсальная количественная полугруппа.

Plus

должен удовлетворять законам полугруппы:

  • Associativity (ассоциативность): (x + y) + z = x + (y + z)

Определение в виде кода на Scala

trait Plus[F[_]]:
def plus[A](fa1: F[A], fa2: => F[A]): F[A]
def semigroup[A]: Semigroup[F[A]] = (f1: F[A], f2: F[A]) => plus(f1, f2)

Примеры

Связанный список

given Plus[List] with
def plus[A](fa1: List[A], fa2: => List[A]): List[A] = fa1 ++ fa2

Реализация

Реализация в ScalaZ

import scalaz.*
import Scalaz.*
List(1, 2) <+> List(3, 4) // List(1, 2, 3, 4)

Ссылки:

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.