Code Examples
A repository of 155 code examples for BeepBeep
package-info.java
1 /*
2  BeepBeep, an event stream processor
3  Copyright (C) 2008-2016 Sylvain HallĂ©
4 
5  This program is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published
7  by the Free Software Foundation, either version 3 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with this program. If not, see <http://www.gnu.org/licenses/>.
17  */
18 
19 /**
20  * Create custom {@link Function} objects, directly or by combining existing
21  * functions.
22  * <p>
23  * A particular aspect of BeepBeep 3 is the fact that functions are themselves
24  * objects. For example, the {@link ApplyFunction} applies a function (any
25  * function) to each incoming event. The actual function that it uses is
26  * chosen by passing to this processor a {@link Function} object.
27  * <p>
28  * BeepBeep and its supplemental palettes already define plenty of functions
29  * for specific uses. However, if no function suits your needs, it also
30  * provides simple means for creating your own function objects. This can be
31  * done in two ways:
32  * <ul>
33  * <li>By creating a new class that inherits from {@link Function} or one of
34  * its descendents</li>
35  * <li>By combining (i.e. composing) existing functions in an expression.
36  * For example, the function <i>f</i>(<i>x</i>,<i>y</i>) = 2<i>x</i> + <i>y</i>
37  * is a function of two arguments, defined by composing existing functions,
38  * namely multiplication and addition. In BeepBeep, writing such an expression
39  * is done by creating an instance of a {@link FunctionTreeUsage}.</li>
40  * </ul>
41  * @author Sylvain HallĂ©
42  */
43 package functions;