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