001    package fj;
002    
003    /**
004     * A transformation or function from <code>A</code> to <code>B</code>. This type can be represented
005     * 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 F<A, B> {
014      /**
015       * Transform <code>A</code> to <code>B</code>.
016       *
017       * @param a The <code>A</code> to transform.
018       * @return The result of the transformation.
019       */
020      B f(A a);
021    }