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/Function11.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/Function11.scala')
-rw-r--r-- | src/library/scala/Function11.scala | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/library/scala/Function11.scala b/src/library/scala/Function11.scala index 052164461e..5929d6bd91 100644 --- a/src/library/scala/Function11.scala +++ b/src/library/scala/Function11.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 Function11[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, +R] extends AnyRef { +trait Function11[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, +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): R override def toString() = "<function>" - + /** f(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11) == (f.curry)(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x8)(x9)(x10)(x11) + */ + def curry: T1 => T2 => T3 => T4 => T5 => T6 => T7 => T8 => T9 => T10 => T11 => R = { + (x1: T1) => ((x2: T2, x3: T3, x4: T4, x5: T5, x6: T6, x7: T7, x8: T8, x9: T9, x10: T10, x11: T11) => self.apply(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11)).curry + } } |