All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.lacuna.bifurcan.IForkable Maven / Gradle / Ivy

package io.lacuna.bifurcan;

/**
 * @author ztellman
 */
public interface IForkable {
  /**
   * This represents a data structure which can be made forked, which is equivalent to Clojure's persistent
   * data structures, also sometimes called functional or immutable.  This is called "forked" because it
   * means that multiple functions can make divergent changes to the data structure without affecting each other.
   * 

* If only a single function or scope uses the data structure, it can be left as a linear data structure, which * can have significant performance benefits. *

* If the data structure is already forked, it will simply return itself. * * @return a forked form of the data structure */ T forked(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy