summaryrefslogtreecommitdiff
path: root/src/library
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-12-04 17:41:36 +0000
committerMartin Odersky <odersky@gmail.com>2006-12-04 17:41:36 +0000
commit67dfced37f9b5d7a2b7f80f4da7fb5716f557350 (patch)
treec62c6fafcd14d847d45baa8b6155d9c52b76cbfc /src/library
parent525018c3cab1aaeb6644e9dacae2ab36ffa28d13 (diff)
downloadscala-67dfced37f9b5d7a2b7f80f4da7fb5716f557350.tar.gz
scala-67dfced37f9b5d7a2b7f80f4da7fb5716f557350.tar.bz2
scala-67dfced37f9b5d7a2b7f80f4da7fb5716f557350.zip
added infix type constructors
added &: infix constructor for pairs optimization to remove redudant outer pointers
Diffstat (limited to 'src/library')
-rw-r--r--src/library/scala/Function.scala2
-rw-r--r--src/library/scala/Predef.scala48
2 files changed, 26 insertions, 24 deletions
diff --git a/src/library/scala/Function.scala b/src/library/scala/Function.scala
index 6f4c14ed55..12e124779b 100644
--- a/src/library/scala/Function.scala
+++ b/src/library/scala/Function.scala
@@ -16,7 +16,7 @@ package scala
* @author Martin Odersky
* @version 1.0, 29/11/2006
*/
-object Function extends Application {
+object Function {
/** Given a sequence of functions <code>f<sub>1</sub></code>, ...,
* <code>f<sub>n</sub></code>, return the function <code>f<sub>1</sub>
diff --git a/src/library/scala/Predef.scala b/src/library/scala/Predef.scala
index 9985a4f855..1422aa6d0d 100644
--- a/src/library/scala/Predef.scala
+++ b/src/library/scala/Predef.scala
@@ -54,29 +54,7 @@ object Predef {
type NoSuchElementException = java.util.NoSuchElementException
type NumberFormatException = java.lang.NumberFormatException
-/*
- type ~[a, b] = Tuple2[a, b]
- class FirstOfPair[a](x: a) {
- def ~[b](y: b): Tuple2[a, b] = Tuple2(x, y)
- }
- implicit def any2firstOfPair[a](x: a): FirstOfPair[a] = new FirstOfPair(x)
-*/
-
- type Pair[+a, +b] = Tuple2[a, b]
- def Pair[a, b](x: a, y: b) = Tuple2(x, y)
-
- type Triple[+a, +b, +c] = Tuple3[a, b, c]
- def Triple[a, b, c](x: a, y: b, z: c) = Tuple3(x, y, z)
-
- def Tuple[a1](x1: a1) = Tuple1(x1)
- def Tuple[a1, a2](x1: a1, x2: a2) = Tuple2(x1, x2)
- def Tuple[a1, a2, a3](x1: a1, x2: a2, x3: a3) = Tuple3(x1, x2, x3)
- def Tuple[a1, a2, a3, a4](x1: a1, x2: a2, x3: a3, x4: a4) = Tuple4(x1, x2, x3, x4)
- def Tuple[a1, a2, a3, a4, a5](x1: a1, x2: a2, x3: a3, x4: a4, x5: a5) = Tuple5(x1, x2, x3, x4, x5)
- def Tuple[a1, a2, a3, a4, a5, a6](x1: a1, x2: a2, x3: a3, x4: a4, x5: a5, x6: a6) = Tuple6(x1, x2, x3, x4, x5, x6)
- def Tuple[a1, a2, a3, a4, a5, a6, a7](x1: a1, x2: a2, x3: a3, x4: a4, x5: a5, x6: a6, x7: a7) = Tuple7(x1, x2, x3, x4, x5, x6, x7)
- def Tuple[a1, a2, a3, a4, a5, a6, a7, a8](x1: a1, x2: a2, x3: a3, x4: a4, x5: a5, x6: a6, x7: a7, x8: a8) = Tuple8(x1, x2, x3, x4, x5, x6, x7, x8)
- def Tuple[a1, a2, a3, a4, a5, a6, a7, a8, a9](x1: a1, x2: a2, x3: a3, x4: a4, x5: a5, x6: a6, x7: a7, x8: a8, x9: a9) = Tuple9(x1, x2, x3, x4, x5, x6, x7, x8, x9)
+ // --- Miscelleaneous -----------------------------------------------
val $scope = scala.xml.TopScope
@@ -113,6 +91,30 @@ object Predef {
throw new Error("assumption failed: " + message)
}
+ // --- Tupling ----------------------------------------------
+
+ type Pair[+a, +b] = Tuple2[a, b]
+ def Pair[a, b](x: a, y: b) = Tuple2(x, y)
+
+ type Triple[+a, +b, +c] = Tuple3[a, b, c]
+ def Triple[a, b, c](x: a, y: b, z: c) = Tuple3(x, y, z)
+
+ type &: [+a, +b] = Tuple2[a, b]
+ class SndOfPair[+b](y: b) {
+ def &: [a](x: a): Tuple2[a, b] = Tuple2(x, y)
+ }
+ implicit def any2sndOfPair[b](x: b): SndOfPair[b] = new SndOfPair(x)
+
+ def Tuple[a1](x1: a1) = Tuple1(x1)
+ def Tuple[a1, a2](x1: a1, x2: a2) = Tuple2(x1, x2)
+ def Tuple[a1, a2, a3](x1: a1, x2: a2, x3: a3) = Tuple3(x1, x2, x3)
+ def Tuple[a1, a2, a3, a4](x1: a1, x2: a2, x3: a3, x4: a4) = Tuple4(x1, x2, x3, x4)
+ def Tuple[a1, a2, a3, a4, a5](x1: a1, x2: a2, x3: a3, x4: a4, x5: a5) = Tuple5(x1, x2, x3, x4, x5)
+ def Tuple[a1, a2, a3, a4, a5, a6](x1: a1, x2: a2, x3: a3, x4: a4, x5: a5, x6: a6) = Tuple6(x1, x2, x3, x4, x5, x6)
+ def Tuple[a1, a2, a3, a4, a5, a6, a7](x1: a1, x2: a2, x3: a3, x4: a4, x5: a5, x6: a6, x7: a7) = Tuple7(x1, x2, x3, x4, x5, x6, x7)
+ def Tuple[a1, a2, a3, a4, a5, a6, a7, a8](x1: a1, x2: a2, x3: a3, x4: a4, x5: a5, x6: a6, x7: a7, x8: a8) = Tuple8(x1, x2, x3, x4, x5, x6, x7, x8)
+ def Tuple[a1, a2, a3, a4, a5, a6, a7, a8, a9](x1: a1, x2: a2, x3: a3, x4: a4, x5: a5, x6: a6, x7: a7, x8: a8, x9: a9) = Tuple9(x1, x2, x3, x4, x5, x6, x7, x8, x9)
+
// views -------------------------------------------------------------
implicit def identity[a](x: a): a = x