/*
* Javolution - Java(TM) Solution for Real-Time and Embedded Systems
* Copyright (C) 2012 - Javolution (http://javolution.org/)
* All rights reserved.
*
* Permission to use, copy, modify, and distribute this software is
* freely granted, provided that this notice is preserved.
*/
package javolution.util.function;
/**
* <p> A function that perform some operation and returns the result of
* that operation.</p>
*
* @param <T> the type of the input parameter of the apply operation.
* @param <R> the type of the result of the apply operation.
*
* @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
* @version 6.0, July 21, 2013
* @see <a href="http://en.wikipedia.org/wiki/Function_(computer_science)">Wikipedia: Function<a>
*/
public interface Function<T, R> {
/**
* Returns the result of applying this function to the specified parameter.
*
* @param param the parameter object on which the function is performed.
* @return the result of the function.
*/
R apply(T param);
}