dist-Methode mit in unser ClosestPair-Objekt?
Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Aufgabe 10.8: Closest Pair
Hallo zusammen!
Sollen/dürfen wir bei der ClosestPair-Aufgabe die dist-Methode aus dem Objekt ClosestPairSkeleton mit in unser Objekt, das wir abgeben, reinziehen oder sollen wir die Methode immer über ClosestPairSkeleton.dist aufrufen?
Danke!
Wenn du ClosestPairSkeleton richtig importierst ([m]import ClosestPairSkeleton._[/m]), dann kannst du die Funktion [m]dist[/m] ohne ein vorheriges [m]ClosestPairSkeleton[/m] aufrufen.
In Eclipse funktioniert das Importieren von ClosestPairSkeleton.scala. Wenn ich in der Console [m]scala -i[/m] und danach [m]:load ClosestPair.scala[/m] ausfuehre, dann kommt eine Fehlermeldung. Was muss man in so einem Fall in die Console eingeben?
Hmmmm. wenn ich s mit scalac versuche kommt bei mir
Die Skeleton-Datei liegt im gleichen Verzeichnis.
ich verwende gern einen bash-alias der aufgelöst wird zu:
$ scala -J-Xmx2048M -Yrepl-sync -feature -deprecation -i ClosestPairSkeleton.scala ClosestPair.scala
Loading ClosestPairSkeleton.scala...
defined object ClosestPairSkeleton
Loading ClosestPair.scala...
import ClosestPairSkeleton._
defined object ClosestPair
Welcome to Scala version 2.11.1 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_60).
Type in expressions to have them evaluated.
ungefähr so:
[m]alias scalaREPL=‚/scala/bin/scala -J-Xmx2048M -Yrepl-sync -feature -deprecation -i‘[/m]
und für Akka gleich ein Shell-Script in etwa so:
#!/bin/bash
SCALA="<path1>/scala/bin/scala"
AKKA_LIBS="<path2>/scala-akka/lib/akka"
AKKA_CLASSPATH="."
# AKKA_CLASSPATH=$AKKA_CLASSPATH:$(find $AKKA_LIBS/akka-actor_*.jar)
AKKA_CLASSPATH=$AKKA_CLASSPATH:$(find $AKKA_LIBS/akka-remote_*.jar)
# AKKA_CLASSPATH=$AKKA_CLASSPATH:$(find $AKKA_LIBS/config-*.jar)
AKKA_CLASSPATH=$AKKA_CLASSPATH:$(find $AKKA_LIBS/netty-*.jar)
AKKA_CLASSPATH=$AKKA_CLASSPATH:$(find $AKKA_LIBS/protobuf-*.jar)
AKKA_CLASSPATH=$AKKA_CLASSPATH:$(find $AKKA_LIBS/../scala-library.jar)
echo "$AKKA_CLASSPATH"
$SCALA -classpath "$AKKA_CLASSPATH" -feature -deprecation -i "$@"
Dein Problem ist, dass die :-Befehle im Scala Interpreter in Eclipse nicht funktionieren. Wenn du die ganze Klasse rein laden willst, dann markiere sie komplett und drück oben auf Run Selection in Scala Interpreter (Ctrl+Shift+X).
Oder du markierst nur die Teile, die du wirklich brauchst.
Oder man kopiert ganz einfach die dist Methode
… oooder, man macht keine [m]class[/m], sondern ein [m]object[/m] (wie es in der Aufgabenstellung steht) und lässt es von [m]App[/m] erben. Dann ist das ganze ausführbar und man kann sich den Interpreter schenken. Die Tests schreibt man einfach mit rein (natürlich in einem Debug-Block oder so).