没有任何数据可供显示
开源项目社区 | 当前位置 : |
|
oss.trustie.net/open_source_projects | 主页 > 开源项目社区 > scalaz |
scalaz
|
8 | 0 | 6432 |
贡献者 | 讨论 | 代码提交 |
The source for Scalaz is now hosted on GitHub - http://github.com/scalaz/scalaz
Scalaz (Scar-lah-zed) is a library written in the Scala Programming Language. One mandate of the library is to depend only on the core Scala API and the core Java 2 Standard Edition API. The intention of Scalaz is to include general functions that are not currently available in the core Scala API. Scalaz is released under a BSD open source licence making it compatible with the licence of the Scala project.
Scalaz has recently (December 2009) undergone a rewrite for a planned version 5 release coinciding with the upcoming Scala 2.8.0 release. Much of what was included in previous versions is still available however, it is better organised.
CommunityMailing list IRC channel: #scalaz channel on the freenode network irc://freenode.net/#scalaz PresentationsDeriving Scalaz Nick Partridge at the Melbourne Scala User Group Beyond Mere Actors Concurrent Programming with Scalaz, Rúnar Bjarnason LinksLatest Scaladoc Annotated Sources (Scala X-Ray) Examples scalaz.Scalaz scalaz.Identity scalaz.MA scalaz.MAB Scalaz 5 regular builds 2010-02-15+64.581201s Scaladoc JAR file Browse examples Browse source CONTRIBUTORS LICENCE Detailed features of Scalaz 5object Scalaz for single-import access to all functions and implicits provided by the library. import scalaz._; import Scalaz._; // profit!
The general purpose 'Pimps of Scalaz', that provide general purpose functions and allow object-oriented style syntax, for example 1.pure[List] or List(1, 2, 3).suml Identity wraps any value. MA wraps values based on a type constructor of kind * -> , e.g List[Int] MAB wraps values based on a type constructor of kind (, *) -> *, e.g Either[String, Int]
Specific pimps, to add useful methods to these data types: Array[Byte] BigInteger Boolean Byte Char Int Iterable List Long Option Short Stream String An implementation of common type-classes Equal - for doing type-safe (and configurable) equality checks Show - for type-safe configuration of display for types (like Java's toString but with a compile-time check for existence and easier to use) Order - type-safe comparisons for ordering Arrow, a usable implementation of John Hughes' arrows for doing abstraction gymnastics with first-class functions. | Example Applicative, an implementation of Applicative Functors as per Applicative Programming with Effects for a more powerful (more general) monad. Example An implementation of a covariant binary functor (Bifunctor) for mapping over either (or both) side of a pair or scala.Either, scala.Tuple2, or similar. Example A Burkhard-Keller tree for fast approximation-based searches -- ever wondered why Google knows what you really meant, so quickly? Here is a great explanation of a B-K Tree | BKTree | Example An implementation of a contra-variant functor (Cofunctor) and Comonad. Cofunctor Example A Digit data type (0-9) Monad and Functor type classes with associated implementation and methods. Monad Example | Functor Example Kleisli and Cokleisli data types and subsequent useful operations. Kleisli Example NonEmptyList), a data type for representing one or more elements of the same type that guarantees successful termination of head, tail and other operations DList), a data type for representing elements of the same type with constant time append/prepend operations. A Monoid) type class and (so many!) implementations A data type (State) for representing state transition through a value i.e. a function: S => (S, A) | Example Traverse, an implementation of an internal iterator as per The Essence of the Iterator Pattern using a traversable type-class A multi-way Tree (rose tree) and a one-hole zipper (TreeLoc) for tree traversal. Zipper, a pointed list (zipper list) data type Memo A memoisation library for automatically storing the result of computations (especially useful for Dynamic Programming Algorithms) Promise and Actor, a light-weight and highly configurable concurrency library with actors and non-blocking composable future values. Presentation | Example
ScalaCheck Integration ScalaCheckBinding Type Class Instances for scalacheck.Gen and scalacheck.Arbitrary ScalazArbitrary Arbitrary Instances for Scalaz data structures.
Obtaining Scalaz through SBT or MavenWe periodically publish snapshots to the Scala Tools repository.
Group Artifact Version Description com.googlecode.scalaz scalaz-core_2.8.0.Beta1 5.0-SNAPSHOT Core API, no dependencies. com.googlecode.scalaz scalaz-http_2.8.0.Beta1 5.0-SNAPSHOT HTTP, aka Slinky. Depends on Servlet API 2.5 com.googlecode.scalaz scalaz-scalacheck-binding_2.8.0.Beta1 5.0-SNAPSHOT Bindings for ScalaCheck, including Arbitrary instances for Scalaz data structures. Depends on ScalaCheck com.googlecode.scalaz scalaz-example_2.8.0.Beta1 5.0-SNAPSHOT Usage examples