1 /*BEGIN_COPYRIGHT_BLOCK 2 * 3 * This file is part of DrJava. Download the current version of this project: 4 * http://sourceforge.net/projects/drjava/ or http://www.drjava.org/ 5 * 6 * DrJava Open Source License 7 * 8 * Copyright (C) 2001-2003 JavaPLT group at Rice University (javaplt@rice.edu) 9 * All rights reserved. 10 * 11 * Developed by: Java Programming Languages Team 12 * Rice University 13 * http://www.cs.rice.edu/~javaplt/ 14 * 15 * Permission is hereby granted, free of charge, to any person obtaining a 16 * copy of this software and associated documentation files (the "Software"), 17 * to deal with the Software without restriction, including without 18 * limitation the rights to use, copy, modify, merge, publish, distribute, 19 * sublicense, and/or sell copies of the Software, and to permit persons to 20 * whom the Software is furnished to do so, subject to the following 21 * conditions: 22 * 23 * - Redistributions of source code must retain the above copyright 24 * notice, this list of conditions and the following disclaimers. 25 * - Redistributions in binary form must reproduce the above copyright 26 * notice, this list of conditions and the following disclaimers in the 27 * documentation and/or other materials provided with the distribution. 28 * - Neither the names of DrJava, the JavaPLT, Rice University, nor the 29 * names of its contributors may be used to endorse or promote products 30 * derived from this Software without specific prior written permission. 31 * - Products derived from this software may not be called "DrJava" nor 32 * use the term "DrJava" as part of their names without prior written 33 * permission from the JavaPLT group. For permission, write to 34 * javaplt@rice.edu. 35 * 36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 37 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 38 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 39 * THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 40 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 41 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42 * OTHER DEALINGS WITH THE SOFTWARE. 43 * 44 END COMPYRIGHT BLOCK */ 45 46 package edu.rice.cs.util; 47 48 /** 49 * This lambda interface is a generic version of the scheme lambda. 50 * It is meant to be instantiated anonymously within methods to exploit 51 * the closure of the method and abstract pieces of code. 52 */ 53 public interface Lambda<Out,In> { 54 55 /** 56 * Runs the desired code given the parameter specified 57 */ 58 public Out apply(In param); 59 60 } 61