org.protelis.lang.interpreter.util.TriFunction Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of protelis-interpreter Show documentation
Show all versions of protelis-interpreter Show documentation
The Protelis language interpreter
/*
* Copyright (C) 2021, Danilo Pianini and contributors listed in the project's build.gradle.kts or pom.xml file.
*
* This file is part of Protelis, and is distributed under the terms of the GNU General Public License,
* with a linking exception, as described in the file LICENSE.txt in this project's top directory.
*/
package org.protelis.lang.interpreter.util;
/**
* Represents a function that accepts three arguments and produces a result.
* This is the three-arity specialization of {@link java.util.function.Function}.
*
* This is a functional interface
* whose functional method is {@link #apply(Object, Object, Object)}.
*
* @param the type of the first argument to the function
* @param the type of the second argument to the function
* @param the type of the third argument to the function
* @param the type of the result of the function
*/
@FunctionalInterface
public interface TriFunction {
/**
* Applies this function to the given arguments.
*
* @param a the first function argument
* @param b the second function argument
* @param c the third function argument
* @return the function result
*/
R apply(A a, B b, C c);
}