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

org.pure4j.collections.ISeq Maven / Gradle / Ivy

There is a newer version: 0.3.1
Show newest version
/**
 * Copyright (c) Rich Hickey. All rights reserved.
 * The use and distribution terms for this software are covered by the
 * Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
 * which can be found in the file epl-v10.html at the root of this distribution.
 * By using this software in any fashion, you are agreeing to be bound by
 * the terms of this license.
 * You must not remove this notice, or any other, from this software.
 */

package org.pure4j.collections;

import org.pure4j.annotations.immutable.ImmutableValue;


/**
 * A persistent, functional, sequence interface.
 * 
 * 

ISeqs are immutable values, i.e. neither first(), nor rest() changes or * invalidates the ISeq. * *

This is the equivalent of java.util.Iterator for persistent collections. * *

An empty seq is null. */ @ImmutableValue public interface ISeq extends Counted, Seqable { K first(); /** * @return a seq for the remainder of the list. If there are no more elements, returns null. */ ISeq next(); ISeq more(); /** * Adds an element to the front of the seq. * @return A new non-null ISeq. * @param o any object */ ISeq cons(K o); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy