(Mathe-) Vektoren in Scala

dmike

Bekanntes Mitglied
Also es geht um die mathematischen Vektoren nicht um die Collection Vector.

Ich würde gerne den Downhill-Simplex Algorithmus (von Nealder / Mead) zur Übung in Scala implementieren. Dazu brauch ich die üblichen Vektoroperationen wie Vektoraddition, Skalarmultiplikation etc. Kann ich den in Scala diese Operationen so mathematisch wie möglich ausdrücken?

Z.B. so

(1,2)+(3,4)

(1.5,2.5)+( -1*(3,4.5))

(1.5,1) * 2.0

0.5*(2,3)

Geht das?
 

Landei

Top Contributor
Theoretisch könntest du über implizite Funktionen Tupel mißbrauchen, um diese Syntax zu erlauben. Ich würde trotzdem besser (und performanter) eine einfache Vektorklasse als case class schreiben, dann könntest du v(1,2,3) und so schreiben.
 

dmike

Bekanntes Mitglied
Theoretisch könntest du über implizite Funktionen Tupel mißbrauchen, um diese Syntax zu erlauben. Ich würde trotzdem besser (und performanter) eine einfache Vektorklasse als case class schreiben, dann könntest du v(1,2,3) und so schreiben.

Nur aus Neugier... liegt das etwa daran, dass runde Klammern für Tupel verwendet werden? Könnte ich z.B. [] nehmen, also [1.5,1.5]+[1.5,1.5] schreiben?
 

Landei

Top Contributor
Eckige Klammern in Scala sind für Typparameter (Generics) reserviert. Ganz ehrlich, du wirst keine wirklich mathematische Schreibweise hinbekommen. Die Scala-Syntax ist zwar flexibel, aber so flexibel nun wieder auch nicht. Zur Zeit könnten das höchstens Sprachen, die Macros in geeigneter Form erlauben (etwa C++), oder Exotensprachen, die Syntaxmodifikationen zur Laufzeit zulassen (da fällt mir nur Seed7 ein). Was spricht gegen:
Code:
case class v(data:Double*) {
   def +(that: v) = if (this.data.size != that.data.size) error ("different length") else 
      v(this.data.zip(that.data).map(t => t._1 + t._2): _*)
   override def toString = data.mkString("[",",","]")
}

println(v(1,2,5.5) + v(7,6,5))
//--> [8.0,8.0,10.5]
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Unterschied funktionial <-> OO anhand von Scala <-> Java JVM Sprachen: Kotlin, Scala, Groovy, Jython... 5
M Experten für Scala-Play- Programmierung gesucht!! JVM Sprachen: Kotlin, Scala, Groovy, Jython... 3
M Scala-Programm mit Netbeans compilieren JVM Sprachen: Kotlin, Scala, Groovy, Jython... 1
M Suche Scala Entwickler (Umsteiger [JAVA]) für Zusammenarbeit an privatem Projekt JVM Sprachen: Kotlin, Scala, Groovy, Jython... 7
R Frage zu Scala Code JVM Sprachen: Kotlin, Scala, Groovy, Jython... 2
Landei Scala Scala 2.10 RC JVM Sprachen: Kotlin, Scala, Groovy, Jython... 3
schlingel Scala Schulung - Gratis vom Scala-Schöpfer JVM Sprachen: Kotlin, Scala, Groovy, Jython... 2
Landei Scala Scala-Kritik JVM Sprachen: Kotlin, Scala, Groovy, Jython... 151
Spin Scala Eclipse IDE JVM Sprachen: Kotlin, Scala, Groovy, Jython... 7
Spin Funktionen vs Methods in Scala JVM Sprachen: Kotlin, Scala, Groovy, Jython... 9
Landei Scala Freies eBook "Scala for the impatient" JVM Sprachen: Kotlin, Scala, Groovy, Jython... 2
Spin Arithmetik in Scala JVM Sprachen: Kotlin, Scala, Groovy, Jython... 32
0x7F800000 Numerik in Scala (Performance) JVM Sprachen: Kotlin, Scala, Groovy, Jython... 14
Spin Scala MenuListener JVM Sprachen: Kotlin, Scala, Groovy, Jython... 5
Spin Scala in Eclipse will nicht. JVM Sprachen: Kotlin, Scala, Groovy, Jython... 15
Landei Scala Deutsches Scala-Tutorial JVM Sprachen: Kotlin, Scala, Groovy, Jython... 3
B Scala oder Clojure JVM Sprachen: Kotlin, Scala, Groovy, Jython... 6
Landei Scala "Programming in Scala" - erste Ausgabe kostenlos JVM Sprachen: Kotlin, Scala, Groovy, Jython... 1
W Scala *.Scala to *.jar JVM Sprachen: Kotlin, Scala, Groovy, Jython... 6
H Scala und Aspekte JVM Sprachen: Kotlin, Scala, Groovy, Jython... 4
S Scala Klasse.class in Scala? JVM Sprachen: Kotlin, Scala, Groovy, Jython... 4
B Scala Scala und Netbeans GUI Editor JVM Sprachen: Kotlin, Scala, Groovy, Jython... 15
S Scala: Parser und Lexical JVM Sprachen: Kotlin, Scala, Groovy, Jython... 2
D Wie manche ich das in Scala JVM Sprachen: Kotlin, Scala, Groovy, Jython... 12
S Scala: Static - Konstruktor?? JVM Sprachen: Kotlin, Scala, Groovy, Jython... 5
G Scala IDE JVM Sprachen: Kotlin, Scala, Groovy, Jython... 18
A Scala und J2ME JVM Sprachen: Kotlin, Scala, Groovy, Jython... 2
S Scala Fragen zu Scala JVM Sprachen: Kotlin, Scala, Groovy, Jython... 21
Landei Scala im Kommen :-) JVM Sprachen: Kotlin, Scala, Groovy, Jython... 4

Ähnliche Java Themen

Neue Themen


Oben