X-Git-Url: http://nitlanguage.org diff --git a/lib/functional/functional_types.nit b/lib/functional/functional_types.nit new file mode 100644 index 0000000..4724064 --- /dev/null +++ b/lib/functional/functional_types.nit @@ -0,0 +1,188 @@ +# This file is part of NIT ( http://www.nitlanguage.org ). +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This module provides functional type to represents various function forms. +# Function types can hold up to 20 arguments. The type `Fun` is for function +# (input and output) and `Proc` is for procedure (input but no output). +# This file is automatically generated, do not edit it manually. +module functional_types + +interface Routine +end +interface Fun + super Routine +end +interface Proc + super Routine +end +class Fun0[RESULT] + super Fun + fun call: RESULT is abstract +end +class Proc0 + super Proc + fun call is abstract +end +class Fun1[A0,RESULT] + super Fun + fun call(a0: A0): RESULT is abstract +end +class Proc1[A0] + super Proc + fun call(a0: A0) is abstract +end +class Fun2[A0,A1,RESULT] + super Fun + fun call(a0: A0,a1: A1): RESULT is abstract +end +class Proc2[A0,A1] + super Proc + fun call(a0: A0,a1: A1) is abstract +end +class Fun3[A0,A1,A2,RESULT] + super Fun + fun call(a0: A0,a1: A1,a2: A2): RESULT is abstract +end +class Proc3[A0,A1,A2] + super Proc + fun call(a0: A0,a1: A1,a2: A2) is abstract +end +class Fun4[A0,A1,A2,A3,RESULT] + super Fun + fun call(a0: A0,a1: A1,a2: A2,a3: A3): RESULT is abstract +end +class Proc4[A0,A1,A2,A3] + super Proc + fun call(a0: A0,a1: A1,a2: A2,a3: A3) is abstract +end +class Fun5[A0,A1,A2,A3,A4,RESULT] + super Fun + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4): RESULT is abstract +end +class Proc5[A0,A1,A2,A3,A4] + super Proc + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4) is abstract +end +class Fun6[A0,A1,A2,A3,A4,A5,RESULT] + super Fun + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5): RESULT is abstract +end +class Proc6[A0,A1,A2,A3,A4,A5] + super Proc + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5) is abstract +end +class Fun7[A0,A1,A2,A3,A4,A5,A6,RESULT] + super Fun + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6): RESULT is abstract +end +class Proc7[A0,A1,A2,A3,A4,A5,A6] + super Proc + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6) is abstract +end +class Fun8[A0,A1,A2,A3,A4,A5,A6,A7,RESULT] + super Fun + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7): RESULT is abstract +end +class Proc8[A0,A1,A2,A3,A4,A5,A6,A7] + super Proc + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7) is abstract +end +class Fun9[A0,A1,A2,A3,A4,A5,A6,A7,A8,RESULT] + super Fun + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8): RESULT is abstract +end +class Proc9[A0,A1,A2,A3,A4,A5,A6,A7,A8] + super Proc + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8) is abstract +end +class Fun10[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,RESULT] + super Fun + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9): RESULT is abstract +end +class Proc10[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9] + super Proc + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9) is abstract +end +class Fun11[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,RESULT] + super Fun + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10): RESULT is abstract +end +class Proc11[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10] + super Proc + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10) is abstract +end +class Fun12[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,RESULT] + super Fun + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11): RESULT is abstract +end +class Proc12[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11] + super Proc + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11) is abstract +end +class Fun13[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,RESULT] + super Fun + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12): RESULT is abstract +end +class Proc13[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12] + super Proc + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12) is abstract +end +class Fun14[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,RESULT] + super Fun + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13): RESULT is abstract +end +class Proc14[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13] + super Proc + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13) is abstract +end +class Fun15[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,RESULT] + super Fun + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14): RESULT is abstract +end +class Proc15[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14] + super Proc + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14) is abstract +end +class Fun16[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,RESULT] + super Fun + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15): RESULT is abstract +end +class Proc16[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15] + super Proc + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15) is abstract +end +class Fun17[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,RESULT] + super Fun + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15,a16: A16): RESULT is abstract +end +class Proc17[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16] + super Proc + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15,a16: A16) is abstract +end +class Fun18[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,RESULT] + super Fun + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15,a16: A16,a17: A17): RESULT is abstract +end +class Proc18[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17] + super Proc + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15,a16: A16,a17: A17) is abstract +end +class Fun19[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,RESULT] + super Fun + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15,a16: A16,a17: A17,a18: A18): RESULT is abstract +end +class Proc19[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18] + super Proc + fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15,a16: A16,a17: A17,a18: A18) is abstract +end \ No newline at end of file