/core/src/main/scala/scalaz/Index.scala

http://github.com/scalaz/scalaz · Scala · 35 lines · 12 code · 7 blank · 16 comment · 0 complexity · 5609350ac6517eedd61f9f603e7b8573 MD5 · raw file

  1. package scalaz
  2. ////
  3. /**
  4. * Random access through an integer index.
  5. */
  6. ////
  7. @deprecated("Index is deprecated, use Foldable#index instead", "7.1")
  8. trait Index[F[_]] { self =>
  9. ////
  10. /**
  11. * @return the element at index `i` in a `Some`, or `None` if the given index falls outside of the range
  12. */
  13. def index[A](fa: F[A], i: Int): Option[A]
  14. /**
  15. * @return the element at index `i`, or `default` if the given index falls outside of the range
  16. */
  17. def indexOr[A](fa: F[A], default: => A, i: Int): A =
  18. index(fa, i) getOrElse default
  19. // derived functions
  20. ////
  21. val indexSyntax = new scalaz.syntax.IndexSyntax[F] { def F = Index.this }
  22. }
  23. @deprecated("Index is deprecated, use Foldable#index instead", "7.1")
  24. object Index {
  25. @inline def apply[F[_]](implicit F: Index[F]): Index[F] = F
  26. ////
  27. ////
  28. }