diff options
author | Geoffrey Washburn <geoffrey.washburn@epfl.ch> | 2008-04-23 08:15:17 +0000 |
---|---|---|
committer | Geoffrey Washburn <geoffrey.washburn@epfl.ch> | 2008-04-23 08:15:17 +0000 |
commit | 072455265526c994fb39221624209a3180b41837 (patch) | |
tree | f1d07a995e7668f97246975bc3867e4ef4196a1b /src/library/scala/Function17.scala | |
parent | d8342f44a77d0cb2780c1681e114fe2258a3dcb4 (diff) | |
download | scala-072455265526c994fb39221624209a3180b41837.tar.gz scala-072455265526c994fb39221624209a3180b41837.tar.bz2 scala-072455265526c994fb39221624209a3180b41837.zip |
Modified the implementation of curry so that for
FunctionN, where N > 4, many fewer classes are created statically at the
expense of creating more objects dynamically (which seems reasonable
given how common such functions are likely to be). This also allows for
curry in FunctionN for N > 8 without running into the filename length
restriction.
Diffstat (limited to 'src/library/scala/Function17.scala')
-rw-r--r-- | src/library/scala/Function17.scala | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/library/scala/Function17.scala b/src/library/scala/Function17.scala index 5b325481de..bf9f63064c 100644 --- a/src/library/scala/Function17.scala +++ b/src/library/scala/Function17.scala @@ -9,7 +9,7 @@ // $Id$ -// generated by genprod on Tue Apr 22 16:52:19 CEST 2008 (with extra methods) +// generated by genprod on Wed Apr 23 10:06:16 CEST 2008 (with extra methods) package scala @@ -19,9 +19,13 @@ package scala * </p> * */ -trait Function17[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, +R] extends AnyRef { +trait Function17[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, +R] extends AnyRef { self => def apply(v1:T1, v2:T2, v3:T3, v4:T4, v5:T5, v6:T6, v7:T7, v8:T8, v9:T9, v10:T10, v11:T11, v12:T12, v13:T13, v14:T14, v15:T15, v16:T16, v17:T17): R override def toString() = "<function>" - + /** f(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17) == (f.curry)(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x8)(x9)(x10)(x11)(x12)(x13)(x14)(x15)(x16)(x17) + */ + def curry: T1 => T2 => T3 => T4 => T5 => T6 => T7 => T8 => T9 => T10 => T11 => T12 => T13 => T14 => T15 => T16 => T17 => R = { + (x1: T1) => ((x2: T2, x3: T3, x4: T4, x5: T5, x6: T6, x7: T7, x8: T8, x9: T9, x10: T10, x11: T11, x12: T12, x13: T13, x14: T14, x15: T15, x16: T16, x17: T17) => self.apply(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17)).curry + } } |