001    package fj;
002    
003    /**
004     * A transformation function of arity-3 from <code>A</code>, <code>B</code> and <code>C</code> to
005     * <code>D</code>. This type can be represented using the Java 7 closure syntax.
006     *
007     * @version %build.number%<br>
008     *          <ul>
009     *          <li>$LastChangedRevision: 5 $</li>
010     *          <li>$LastChangedDate: 2008-12-06 16:49:43 +1000 (Sat, 06 Dec 2008) $</li>
011     *          </ul>
012     */
013    public interface F3<A, B, C, D> {
014      /**
015       * Transform <code>A</code>, <code>B</code> and <code>C</code> to <code>D</code>.
016       *
017       * @param a The <code>A</code> to transform.
018       * @param b The <code>B</code> to transform.
019       * @param c The <code>C</code> to transform.
020       * @return The result of the transformation.
021       */
022      D f(A a, B b, C c);
023    }