<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Deutsches Scala-Forum - Scala-Programmierung</title>
    <subtitle></subtitle>
    <link rel="self" href="http://scala-forum.org/feed.php?11,type=atom" />
    <id>http://scala-forum.org/list.php?11</id>
    <updated>2010-09-05T22:26:08+02:00</updated>
    <generator>Phorum 5.2.13</generator>
    <entry>
        <title type="html">StackOverflow beim compilieren? (3 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,2042,2042#msg-2042" />
        <category term="Scala-Programmierung" />
        <published>2010-09-05T16:06:20+02:00</published>
        <updated>2010-09-05T21:50:59+02:00</updated>
        <id>http://scala-forum.org/read.php?11,2042,2042#msg-2042</id>
        <author>
            <name>Siassei</name>
        </author>
        <summary type="html"><![CDATA[ Servus,<br />
<br />
beim compilieren mit Maven bekomme ich eine StackOverflow-Exception. Leider kann ich den Ort nicht zu 100% ausmachen, aber ich denke mal das es an dem folgenden Codestück liegt.<br />
<br />
Wie kann ich den Überlauf verhindern?<br />
Die Arrays enthalten jetzt nicht so viel Elemente. Wieso wird hier bereits ein Überlauf produziert?<br />
<br />
<pre class="bbcode">
Compiling 133 source files to... at 1283695019242
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org_scala_tools_maven_executions.MainHelper.runMain(MainHelper.java:151)
        at org_scala_tools_maven_executions.MainWithArgsInFile.main(MainWithArgsInFile.java:26)
[ERROR]Caused by: java.lang.StackOverflowError
        at scala.tools.nsc.typechecker.Typers$Typer.gd9$1(Typers.scala:785)
        at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:771)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4083)
        at scala.tools.nsc.typechecker.Typers$Typer.typedTypeConstructor(Typers.scala:4189)
        at scala.tools.nsc.typechecker.Typers$Typer.typedTypeConstructor(Typers.scala:4212)
        at scala.tools.nsc.typechecker.Typers$Typer.typedNew$1(Typers.scala:3140)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:3849)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4078)
        at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:4145)
        at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:4151)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:3964)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4078)
        at scala.tools.nsc.typechecker.Typers$Typer.typedOperator(Typers.scala:4157)
        at scala.tools.nsc.typechecker.RefChecks$RefCheckTransformer.toConstructor(RefChecks.scala:797)
        at scala.tools.nsc.typechecker.RefChecks$RefCheckTransformer.transformCaseApply(RefChecks.scala:1008)
        at scala.tools.nsc.typechecker.RefChecks$RefCheckTransformer.transform(RefChecks.scala:1146)
        at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:804)
        at scala.tools.nsc.typechecker.RefChecks$RefCheckTransformer.transform(RefChecks.scala:1183)
        at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:838)
        at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:838)
        at scala.collection.immutable.List.loop$1(List.scala:115)
        at scala.collection.immutable.List.mapConserve(List.scala:132)
        at scala.collection.immutable.List.loop$1(List.scala:119)
        at scala.collection.immutable.List.mapConserve(List.scala:132)
        at scala.collection.immutable.List.loop$1(List.scala:119)
        at scala.collection.immutable.List.mapConserve(List.scala:132)
        at scala.collection.immutable.List.loop$1(List.scala:119)
        at scala.collection.immutable.List.mapConserve(List.scala:132)
        at scala.collection.immutable.List.loop$1(List.scala:119)
        at scala.collection.immutable.List.mapConserve(List.scala:132)
        at scala.collection.immutable.List.loop$1(List.scala:119)
        at scala.collection.immutable.List.mapConserve(List.scala:132)
        at scala.collection.immutable.List.loop$1(List.scala:119)
        at scala.collection.immutable.List.mapConserve(List.scala:132)
        at scala.collection.immutable.List.loop$1(List.scala:119)
        at scala.collection.immutable.List.mapConserve(List.scala:132)
        at scala.collection.immutable.List.loop$1(List.scala:119)
        at scala.collection.immutable.List.mapConserve(List.scala:132)
        at scala.collection.immutable.List.loop$1(List.scala:119)
        at scala.collection.immutable.List.mapConserve(List.scala:132)
        at scala.collection.immutable.List.loop$1(List.scala:119)
....</pre>
Im Orginal sind mehrere Zeilen dieser Form (Array von (Double, Double) oder (Double, Double, Double, Double)) und Länge enthalten.<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div><a href="http://scala-lang.org"><span class="kw1">object</span></a> CIE <span class="br0">&#123;</span>
  <span class="co1">// ....</span>
&nbsp;
  <span class="coMULTI">/**
   * Standard illuminants: CIE Illuminant D65
   *
   */</span>
  <a href="http://scala-lang.org"><span class="kw1">private</span></a><span class="br0">&#91;</span><a href="http://scala-lang.org"><span class="kw1">this</span></a><span class="br0">&#93;</span> lazy <a href="http://scala-lang.org"><span class="kw1">val</span></a> Illuminantd65 <span class="sy0">=</span> Array<span class="br0">&#91;</span><span class="br0">&#40;</span>Double, Double<span class="br0">&#41;</span><span class="br0">&#93;</span> <span class="br0">&#40;</span>
    <span class="br0">&#40;</span>300, 0.034100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>301, 0.360140<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>302, 0.686180<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>303, 1.012220<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>304, 1.338260<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>305, 1.664300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>306, 1.990340<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>307, 2.316380<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>308, 2.642420<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>309, 2.968460<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>310, 3.294500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>311, 4.988650<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>312, 6.682800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>313, 8.376950<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>314, 10.071100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>315, 11.765200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>316, 13.459400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>317, 15.153500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>318, 16.847700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>319, 18.541800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>320, 20.236000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>321, 21.917700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>322, 23.599500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>323, 25.281200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>324, 26.963000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>325, 28.644700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>326, 30.326500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>327, 32.008200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>328, 33.690000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>329, 35.371700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>330, 37.053500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>331, 37.343000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>332, 37.632600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>333, 37.922100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>334, 38.211600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>335, 38.501100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>336, 38.790700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>337, 39.080200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>338, 39.369700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>339, 39.659300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>340, 39.948800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>341, 40.445100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>342, 40.941400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>343, 41.437700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>344, 41.934000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>345, 42.430200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>346, 42.926500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>347, 43.422800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>348, 43.919100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>349, 44.415400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>350, 44.911700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>351, 45.084400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>352, 45.257000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>353, 45.429700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>354, 45.602300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>355, 45.775000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>356, 45.947700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>357, 46.120300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>358, 46.293000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>359, 46.465600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>360, 46.638300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>361, 47.183400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>362, 47.728500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>363, 48.273500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>364, 48.818600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>365, 49.363700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>366, 49.908800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>367, 50.453900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>368, 50.998900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>369, 51.544000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>370, 52.089100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>371, 51.877700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>372, 51.666400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>373, 51.455000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>374, 51.243700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>375, 51.032300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>376, 50.820900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>377, 50.609600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>378, 50.398200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>379, 50.186900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>380, 49.975500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>381, 50.442800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>382, 50.910000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>383, 51.377300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>384, 51.844600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>385, 52.311800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>386, 52.779100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>387, 53.246400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>388, 53.713700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>389, 54.180900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>390, 54.648200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>391, 57.458900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>392, 60.269500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>393, 63.080200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>394, 65.890900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>395, 68.701500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>396, 71.512200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>397, 74.322900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>398, 77.133600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>399, 79.944200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>400, 82.754900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>401, 83.628000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>402, 84.501100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>403, 85.374200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>404, 86.247300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>405, 87.120400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>406, 87.993600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>407, 88.866700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>408, 89.739800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>409, 90.612900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>410, 91.486000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>411, 91.680600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>412, 91.875200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>413, 92.069700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>414, 92.264300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>415, 92.458900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>416, 92.653500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>417, 92.848100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>418, 93.042600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>419, 93.237200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>420, 93.431800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>421, 92.756800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>422, 92.081900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>423, 91.406900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>424, 90.732000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>425, 90.057000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>426, 89.382100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>427, 88.707100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>428, 88.032200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>429, 87.357200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>430, 86.682300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>431, 88.500600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>432, 90.318800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>433, 92.137100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>434, 93.955400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>435, 95.773600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>436, 97.591900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>437, 99.410200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>438, 101.228000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>439, 103.047000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>440, 104.865000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>441, 106.079000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>442, 107.294000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>443, 108.508000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>444, 109.722000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>445, 110.936000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>446, 112.151000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>447, 113.365000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>448, 114.579000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>449, 115.794000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>450, 117.008000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>451, 117.088000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>452, 117.169000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>453, 117.249000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>454, 117.330000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>455, 117.410000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>456, 117.490000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>457, 117.571000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>458, 117.651000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>459, 117.732000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>460, 117.812000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>461, 117.517000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>462, 117.222000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>463, 116.927000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>464, 116.632000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>465, 116.336000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>466, 116.041000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>467, 115.746000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>468, 115.451000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>469, 115.156000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>470, 114.861000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>471, 114.967000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>472, 115.073000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>473, 115.180000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>474, 115.286000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>475, 115.392000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>476, 115.498000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>477, 115.604000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>478, 115.711000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>479, 115.817000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>480, 115.923000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>481, 115.212000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>482, 114.501000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>483, 113.789000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>484, 113.078000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>485, 112.367000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>486, 111.656000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>487, 110.945000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>488, 110.233000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>489, 109.522000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>490, 108.811000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>491, 108.865000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>492, 108.920000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>493, 108.974000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>494, 109.028000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>495, 109.082000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>496, 109.137000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>497, 109.191000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>498, 109.245000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>499, 109.300000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>500, 109.354000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>501, 109.199000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>502, 109.044000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>503, 108.888000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>504, 108.733000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>505, 108.578000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>506, 108.423000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>507, 108.268000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>508, 108.112000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>509, 107.957000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>510, 107.802000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>511, 107.501000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>512, 107.200000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>513, 106.898000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>514, 106.597000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>515, 106.296000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>516, 105.995000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>517, 105.694000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>518, 105.392000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>519, 105.091000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>520, 104.790000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>521, 105.080000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>522, 105.370000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>523, 105.660000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>524, 105.950000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>525, 106.239000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>526, 106.529000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>527, 106.819000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>528, 107.109000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>529, 107.399000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>530, 107.689000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>531, 107.361000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>532, 107.032000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>533, 106.704000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>534, 106.375000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>535, 106.047000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>536, 105.719000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>537, 105.390000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>538, 105.062000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>539, 104.733000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>540, 104.405000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>541, 104.369000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>542, 104.333000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>543, 104.297000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>544, 104.261000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>545, 104.225000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>546, 104.190000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>547, 104.154000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>548, 104.118000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>549, 104.082000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>550, 104.046000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>551, 103.641000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>552, 103.237000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>553, 102.832000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>554, 102.428000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>555, 102.023000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>556, 101.618000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>557, 101.214000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>558, 100.809000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>559, 100.405000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>560, 100.000000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>561, 99.633400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>562, 99.266800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>563, 98.900300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>564, 98.533700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>565, 98.167100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>566, 97.800500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>567, 97.433900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>568, 97.067400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>569, 96.700800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>570, 96.334200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>571, 96.279600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>572, 96.225000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>573, 96.170300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>574, 96.115700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>575, 96.061100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>576, 96.006500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>577, 95.951900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>578, 95.897200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>579, 95.842600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>580, 95.788000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>581, 95.077800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>582, 94.367500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>583, 93.657300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>584, 92.947000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>585, 92.236800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>586, 91.526600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>587, 90.816300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>588, 90.106100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>589, 89.395800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>590, 88.685600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>591, 88.817700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>592, 88.949700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>593, 89.081800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>594, 89.213800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>595, 89.345900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>596, 89.478000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>597, 89.610000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>598, 89.742100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>599, 89.874100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>600, 90.006200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>601, 89.965500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>602, 89.924800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>603, 89.884100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>604, 89.843400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>605, 89.802600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>606, 89.761900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>607, 89.721200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>608, 89.680500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>609, 89.639800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>610, 89.599100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>611, 89.409100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>612, 89.219000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>613, 89.029000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>614, 88.838900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>615, 88.648900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>616, 88.458900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>617, 88.268800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>618, 88.078800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>619, 87.888700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>620, 87.698700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>621, 87.257700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>622, 86.816700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>623, 86.375700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>624, 85.934700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>625, 85.493600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>626, 85.052600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>627, 84.611600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>628, 84.170600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>629, 83.729600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>630, 83.288600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>631, 83.329700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>632, 83.370700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>633, 83.411800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>634, 83.452800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>635, 83.493900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>636, 83.535000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>637, 83.576000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>638, 83.617100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>639, 83.658100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>640, 83.699200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>641, 83.332000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>642, 82.964700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>643, 82.597500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>644, 82.230200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>645, 81.863000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>646, 81.495800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>647, 81.128500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>648, 80.761300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>649, 80.394000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>650, 80.026800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>651, 80.045600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>652, 80.064400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>653, 80.083100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>654, 80.101900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>655, 80.120700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>656, 80.139500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>657, 80.158300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>658, 80.177000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>659, 80.195800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>660, 80.214600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>661, 80.420900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>662, 80.627200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>663, 80.833600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>664, 81.039900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>665, 81.246200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>666, 81.452500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>667, 81.658800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>668, 81.865200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>669, 82.071500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>670, 82.277800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>671, 81.878400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>672, 81.479100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>673, 81.079700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>674, 80.680400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>675, 80.281000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>676, 79.881600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>677, 79.482300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>678, 79.082900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>679, 78.683600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>680, 78.284200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>681, 77.427900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>682, 76.571600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>683, 75.715300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>684, 74.859000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>685, 74.002700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>686, 73.146500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>687, 72.290200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>688, 71.433900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>689, 70.577600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>690, 69.721300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>691, 69.910100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>692, 70.098900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>693, 70.287600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>694, 70.476400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>695, 70.665200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>696, 70.854000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>697, 71.042800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>698, 71.231500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>699, 71.420300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>700, 71.609100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>701, 71.883100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>702, 72.157100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>703, 72.431100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>704, 72.705100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>705, 72.979000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>706, 73.253000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>707, 73.527000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>708, 73.801000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>709, 74.075000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>710, 74.349000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>711, 73.074500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>712, 71.800000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>713, 70.525500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>714, 69.251000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>715, 67.976500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>716, 66.702000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>717, 65.427500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>718, 64.153000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>719, 62.878500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>720, 61.604000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>721, 62.432200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>722, 63.260300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>723, 64.088500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>724, 64.916600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>725, 65.744800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>726, 66.573000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>727, 67.401100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>728, 68.229300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>729, 69.057400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>730, 69.885600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>731, 70.405700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>732, 70.925900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>733, 71.446000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>734, 71.966200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>735, 72.486300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>736, 73.006400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>737, 73.526600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>738, 74.046700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>739, 74.566900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>740, 75.087000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>741, 73.937600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>742, 72.788100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>743, 71.638700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>744, 70.489300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>745, 69.339800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>746, 68.190400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>747, 67.041000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>748, 65.891600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>749, 64.742100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>750, 63.592700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>751, 61.875200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>752, 60.157800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>753, 58.440300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>754, 56.722900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>755, 55.005400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>756, 53.288000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>757, 51.570500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>758, 49.853100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>759, 48.135600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>760, 46.418200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>761, 48.456900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>762, 50.495600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>763, 52.534400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>764, 54.573100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>765, 56.611800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>766, 58.650500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>767, 60.689200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>768, 62.728000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>769, 64.766700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>770, 66.805400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>771, 66.463100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>772, 66.120900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>773, 65.778600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>774, 65.436400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>775, 65.094100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>776, 64.751800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>777, 64.409600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>778, 64.067300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>779, 63.725100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>780, 63.382800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>781, 63.474900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>782, 63.567000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>783, 63.659200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>784, 63.751300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>785, 63.843400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>786, 63.935500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>787, 64.027600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>788, 64.119800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>789, 64.211900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>790, 64.304000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>791, 63.818800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>792, 63.333600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>793, 62.848400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>794, 62.363200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>795, 61.877900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>796, 61.392700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>797, 60.907500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>798, 60.422300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>799, 59.937100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>800, 59.451900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>801, 58.702600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>802, 57.953300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>803, 57.204000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>804, 56.454700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>805, 55.705400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>806, 54.956200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>807, 54.206900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>808, 53.457600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>809, 52.708300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>810, 51.959000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>811, 52.507200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>812, 53.055300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>813, 53.603500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>814, 54.151600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>815, 54.699800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>816, 55.248000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>817, 55.796100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>818, 56.344300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>819, 56.892400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>820, 57.440600<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>821, 57.727800<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>822, 58.015000<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>823, 58.302200<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>824, 58.589400<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>825, 58.876500<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>826, 59.163700<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>827, 59.450900<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>828, 59.738100<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>829, 60.025300<span class="br0">&#41;</span>,
    <span class="br0">&#40;</span>830, 60.312500<span class="br0">&#41;</span>
  <span class="br0">&#41;</span>
&nbsp;
  lazy <a href="http://scala-lang.org"><span class="kw1">val</span></a> StandardIlluminants<span class="sy0">_</span>CIE<span class="sy0">_</span>D65<span class="sy0">:</span>CoefficientSpectrum <span class="sy0">=</span>
    <a href="http://scala-lang.org"><span class="kw1">new</span></a> SampledSpectrum<span class="br0">&#40;</span>Illuminantd65.<span class="me1">map</span><span class="br0">&#123;</span>i <span class="sy0">=&gt;</span> i.<span class="sy0">_</span>1.<span class="me1">toDouble</span><span class="br0">&#125;</span>, Illuminantd65.<span class="me1">map</span><span class="br0">&#123;</span>i <span class="sy0">=&gt;</span> i.<span class="sy0">_</span>2<span class="br0">&#125;</span>,
                        CIE<span class="sy0">_</span>Interpolation<span class="sy0">_</span>Mode,
                        <span class="nu0">100</span><span class="br0">&#41;</span>
<span class="br0">&#125;</span></pre>]]></summary>
    </entry>
    <entry>
        <title type="html">Scala Swing Grafiken einfügen (3 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,2037,2037#msg-2037" />
        <category term="Scala-Programmierung" />
        <published>2010-09-04T11:18:14+02:00</published>
        <updated>2010-09-05T21:48:07+02:00</updated>
        <id>http://scala-forum.org/read.php?11,2037,2037#msg-2037</id>
        <author>
            <name>kayo</name>
        </author>
        <summary type="html"><![CDATA[ Hallo,<br />
<br />
ich habe schon gegoogelt, finde aber nur Themen für Java Swing.<br />
<br />
Wie füge ich Bilder in einem Scala Swing Dialog ein?<br />
<br />
Ich denke ich mache dies mit <br />
<br />
new Label()<br />
<br />
und da muss ich dann das Bild übergeben. Aber wie bzw. wie heißt die Klasse dafür?]]></summary>
    </entry>
    <entry>
        <title type="html">Klassen und Typen (5 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,2028,2028#msg-2028" />
        <category term="Scala-Programmierung" />
        <published>2010-09-01T21:44:39+02:00</published>
        <updated>2010-09-03T08:37:30+02:00</updated>
        <id>http://scala-forum.org/read.php?11,2028,2028#msg-2028</id>
        <author>
            <name>Siassei</name>
        </author>
        <summary type="html"><![CDATA[ Hallo,<br />
<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div><a href="http://scala-lang.org"><span class="kw1">class</span></a> Test<span class="br0">&#91;</span>T<span class="br0">&#93;</span><span class="br0">&#40;</span>a<span class="sy0">:</span>T, b<span class="sy0">:</span>T<span class="br0">&#41;</span> <span class="br0">&#123;</span>
  <span class="co1">// ...</span>
  <a href="http://scala-lang.org"><span class="kw1">def</span></a> calc <span class="sy0">=</span> <span class="br0">&#123;</span>
    <a href="http://scala-lang.org"><span class="kw1">val</span></a> c <span class="sy0">=</span> a + b <span class="sy0">*</span> a
    c
  <span class="br0">&#125;</span>
<span class="br0">&#125;</span>
&nbsp;
<a href="http://scala-lang.org"><span class="kw1">class</span></a> PossibleType <span class="br0">&#123;</span>
&nbsp;
  <a href="http://scala-lang.org"><span class="kw1">def</span></a> +<span class="br0">&#40;</span>v<span class="sy0">:</span>PossibleType<span class="br0">&#41;</span> <span class="sy0">=</span> ...
  <a href="http://scala-lang.org"><span class="kw1">def</span></a> <span class="sy0">*</span> ....
<span class="br0">&#125;</span></pre>
Jetzt soll das ganze für T gleich<br />
  1. Test[Double], Test[Int], ...<br />
  2. Test[PossibleType], Test[...<br />
funktionieren.<br />
<br />
Bei 2. sehe ich kein Problem. z.B. würde sich ein trait anbieten. Aber wie schaffe ich es, dass z.B. auch Double geht?<br />
<br />
Gruß,<br />
  Thomas]]></summary>
    </entry>
    <entry>
        <title type="html">Java Swing TableLayout (4 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,2008,2008#msg-2008" />
        <category term="Scala-Programmierung" />
        <published>2010-08-29T10:26:17+02:00</published>
        <updated>2010-09-04T11:14:54+02:00</updated>
        <id>http://scala-forum.org/read.php?11,2008,2008#msg-2008</id>
        <author>
            <name>kayo</name>
        </author>
        <summary type="html"><![CDATA[ Hallo,<br />
<br />
ich habe gerade ein kleines Problem mit dem TableLayout für Swing. <br />
<br />
Unter java habe ich das immer so gemacht (In einer Klasse, die von JFrame erbt):<br />
<br />
        double groesse[][] = {<br />
                { TableLayout.FILL }, // Spalten<br />
                { TableLayout.FILL,100} };// Reihen<br />
<br />
        TableLayout layout = new TableLayout(groesse);<br />
        setLayout(layout);<br />
<br />
Ich programmiere unter Scala gerade an einem gleichen Dialog, es scheitert aber momentan an dieser Stelle. Wie würde das in Scala aussehen?<br />
Ich habe es so gemacht:<br />
<br />
object Hauptfenster extends JFrame{<br />
<br />
  this.setSize(new Dimension(600,400));<br />
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);<br />
  setMinimumSize(new Dimension(200,200));<br />
  this.setVisible(true)<br />
<br />
  val groesse = new Array[Array[Double]](4,4)<br />
  groesse(0)(0) = 0.25<br />
  groesse(0)(1) = 0.25<br />
  groesse(0)(2) = 0.25<br />
  groesse(0)(3) = 0.25<br />
  groesse(1)(0) = 0.25<br />
  groesse(2)(0) = 0.25<br />
  groesse(3)(0) = 0.25<br />
<br />
  val layout = new TableLayout(groesse);<br />
  this.setLayout(layout);<br />
 }<br />
<br />
Aber ich bekomme dann folgende Fehlermeldung:<br />
<br />
error: overriding method layout in class Container of type ()Unit;<br />
 value layout needs `override' modifier<br />
  val layout = new TableLayout(groesse);<br />
<br />
Ich verstehe nicht was ich falsch mache. Ist es das Array? <br />
<br />
Ich würde mich über Anregungen freuen!]]></summary>
    </entry>
    <entry>
        <title type="html">Suche Interpreter für Programm (2 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,1990,1990#msg-1990" />
        <category term="Scala-Programmierung" />
        <published>2010-08-22T23:43:04+02:00</published>
        <updated>2010-08-23T23:43:55+02:00</updated>
        <id>http://scala-forum.org/read.php?11,1990,1990#msg-1990</id>
        <author>
            <name>Siassei</name>
        </author>
        <summary type="html"><![CDATA[ Servus,<br />
<br />
ich benötige eine Möglichkeit, mit der der Benutzer das vorhandene Programm dynamisch erweitern kann.<br />
Folgendes sollte möglich sein<br />
- ableiten von abstrakten Klassen<br />
- funktionale Programmierung ala Scala (der Code ist in Scala geschrieben, daher habe ich nur Java 1.5 zur verfügung)<br />
- (optinal) loop unrolling, inlining, ...<br />
<br />
Gibt es hierfür etwas brauchbares?<br />
Lässt sich der Scala-Interpreter in einem Programm nutzen?<br />
<br />
Gruß,<br />
  Thomas]]></summary>
    </entry>
    <entry>
        <title type="html">unterschiedliche Interpretation (1 antworten)</title>
        <link href="http://scala-forum.org/read.php?11,1950,1950#msg-1950" />
        <category term="Scala-Programmierung" />
        <published>2010-08-11T22:57:17+02:00</published>
        <updated>2010-08-12T07:36:13+02:00</updated>
        <id>http://scala-forum.org/read.php?11,1950,1950#msg-1950</id>
        <author>
            <name>ray</name>
        </author>
        <summary type="html"><![CDATA[ Hallo,<br />
ich bin gerade dabei ein wenig mit Scala herum zu probieren und dabei bin ich auf folgendes gestoßen:<br />
<br />
Bei...<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div><a href="http://scala-lang.org"><span class="kw1">val</span></a> testList1 <span class="sy0">=</span> List<span class="br0">&#40;</span>1,2,3<span class="br0">&#41;</span>
<a href="http://scala-lang.org"><span class="kw1">val</span></a> testList2 <span class="sy0">=</span> List<span class="br0">&#40;</span>3,4,5<span class="br0">&#41;</span>
<a href="http://scala-lang.org"><span class="kw1">val</span></a> testList3 <span class="sy0">=</span> testList1 <span class="sy0">:::</span> testList2
<a href="http://scala-lang.org"><span class="kw1">val</span></a> testList4 <span class="sy0">=</span> testList1.<span class="sy0">:::</span><span class="br0">&#40;</span>testList2<span class="br0">&#41;</span>
println<span class="br0">&#40;</span>testList3 + <span class="st0">&quot; - &quot;</span> + testList4<span class="br0">&#41;</span></pre>
<br />
bekomme ich als Ausgabe:<br />
<i>List(1, 2, 3, 3, 4, 5) - List(3, 4, 5, 1, 2, 3)</i><br />
<br />
und hier...<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div><a href="http://scala-lang.org"><span class="kw1">val</span></a> a <span class="sy0">=</span> 6/2
<a href="http://scala-lang.org"><span class="kw1">val</span></a> b <span class="sy0">=</span> 6./<span class="br0">&#40;</span><span class="nu0">2</span><span class="br0">&#41;</span>
println<span class="br0">&#40;</span>a + <span class="st0">&quot; = &quot;</span> + b<span class="br0">&#41;</span></pre>
<br />
als Ausgabe:<br />
<i>3 = 3.0</i><br />
<br />
Das verstehe ich nicht ganz. Kann mir das jemand erklären?<br />
<br />
Danke,<br />
Gruss Ray]]></summary>
    </entry>
    <entry>
        <title type="html">Umlaute in Scala (1 antworten)</title>
        <link href="http://scala-forum.org/read.php?11,1867,1867#msg-1867" />
        <category term="Scala-Programmierung" />
        <published>2010-07-30T14:33:17+02:00</published>
        <updated>2010-07-30T21:42:02+02:00</updated>
        <id>http://scala-forum.org/read.php?11,1867,1867#msg-1867</id>
        <author>
            <name>solymosi</name>
        </author>
        <summary type="html"><![CDATA[ Umlaute, arabische und andere Unicode-Zeichen werden in Scala noch nicht ganz sauber verarbeitet. <br />
Vom Kommandoprompt gestartet arbeiten scala und scalac ohne die Option -encoding mit &quot;UTF8&quot; unter Linux und &quot;Cp1252&quot; unter Windows. Ein Umlaut im Kommentar bring den Compiler zum Absturz (pardon: zur Ausnahme). <br />
Abhilfe schafft der Aufruf <br />
scalac -encoding ISO-8859-1 <br />
bzw. <br />
scala -encoding ISO-8859-1 <br />
Es gibt jedoch einen überraschenden Unterschied zwischen dem Verhalten der beiden Aufrufe. Ein &quot;ö&quot; im Kommentar oder im String-Literal wird von beiden verdaut. Ein ö im Bezeichner jedoch wird von scalac vertragen, nicht aber von scala. <br />
Weiß jemand den Grund dafür? Gibt es eine Lösung, dass der Interpreter (wie Java) auch in Bezeichnern Umlaute verkraftet?]]></summary>
    </entry>
    <entry>
        <title type="html">[gelöst] Wie bekomme ich einen Button auf ein GridPadPanel (7 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,1799,1799#msg-1799" />
        <category term="Scala-Programmierung" />
        <published>2010-07-25T16:27:29+02:00</published>
        <updated>2010-07-27T11:37:33+02:00</updated>
        <id>http://scala-forum.org/read.php?11,1799,1799#msg-1799</id>
        <author>
            <name>kapest</name>
        </author>
        <summary type="html"><![CDATA[ Hallo,<br />
<br />
ich versuche gerade ein Fenster mit einem GridPadPanel auszustatten. An einer Stelle komme ich nicht weiter. Wenn ich den Button und das dazugehörige Constraints an das GridBagPanel übergebe beschwert sich der Compiler:<br />
<pre class="bbcode">
...
        val bt1 = new Button {
		text = &quot;Click Me!&quot;
	}
	
	val bt2 = new Button {
		text = &quot;Drück mich&quot;
	}
...
        val mpanel = new  GridBagPanel() {	
		
		val a1 = new Constraints()
		a1.gridx = 0
		a1.gridy = 0
		a1.gridwidth_=(2)
		a1.gridheight_=(1)
		
		
		val a2 = new Constraints()
		a2.grid = (0, 3)              //Alternative
		a2.gridwidth_=(2)
		a2.gridheight_=(1)
		
		
		layout += (<u>bt1</u>, a1)   // found: scala.swing.button, required: scala.swing.Component, this.Constraints
		layout += (<u>bt2</u>, a2)
	}</pre>
<br />
In den layout-Zeilen bemängelt er bt1 und bt2 und gibt dazu die im Kommentar enthaltene Fehlermeldung aus. Demzufolge haben bt1 und bt2 wohl den falschen Typ - aber was kann ich dagegen tun?<br />
<br />
Vilen Dank schon mal<br />
Peter]]></summary>
    </entry>
    <entry>
        <title type="html">ScalaCode selber kompilieren (2 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,1762,1762#msg-1762" />
        <category term="Scala-Programmierung" />
        <published>2010-07-19T09:52:42+02:00</published>
        <updated>2010-07-19T12:32:43+02:00</updated>
        <id>http://scala-forum.org/read.php?11,1762,1762#msg-1762</id>
        <author>
            <name>marc.gorzala</name>
        </author>
        <summary type="html"><![CDATA[ Hallo zusammen,<br />
<br />
ich schreibe an einem Programm das einen Teil seiner Konfiguration als Scala-Code bekommen soll. <br />
<br />
Aufgerufen soll es einfach über die Kommandozeile nach der Art:<br />
<br />
programmname.jar config.scala<br />
<br />
Als erstes soll dann config.scala kompiliert werden. Dazu habe ich den Scala-Compilier und die Scala-Bibliothek in programmname.jar mit reingepackt. Das kompilieren funktioniert mit folgendem Code<br />
<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div><a href="http://scala-lang.org"><span class="kw1">def</span></a> load<span class="br0">&#40;</span>fname0<span class="sy0">:</span> String<span class="br0">&#41;</span> <span class="sy0">:</span> Problem<span class="br0">&#91;</span>AnyRef<span class="br0">&#93;</span> <span class="sy0">=</span> <span class="br0">&#123;</span>
    println <span class="br0">&#40;</span><span class="st0">&quot;Loading Problem: &quot;</span> + fname0<span class="br0">&#41;</span>
    <a href="http://scala-lang.org"><span class="kw1">val</span></a> classesDir <span class="sy0">=</span> <a href="http://scala-lang.org"><span class="kw1">new</span></a> File<span class="br0">&#40;</span><span class="st0">&quot;./work&quot;</span><span class="br0">&#41;</span>
    <a href="http://scala-lang.org"><span class="kw1">if</span></a> <span class="br0">&#40;</span><span class="sy0">!</span>classesDir.<span class="me1">exists</span><span class="br0">&#41;</span> classesDir.<span class="me1">mkdir</span>
&nbsp;
    <a href="http://scala-lang.org"><span class="kw1">val</span></a> probfile <span class="sy0">=</span> <a href="http://scala-lang.org"><span class="kw1">new</span></a> File<span class="br0">&#40;</span>fname0<span class="br0">&#41;</span>
    <a href="http://scala-lang.org"><span class="kw1">val</span></a> cname <span class="sy0">=</span> probfile.<span class="me1">getName</span>.<span class="me1">substring</span><span class="br0">&#40;</span><span class="nu0">0</span>, probfile.<span class="me1">getName</span>.<span class="me1">indexOf</span><span class="br0">&#40;</span><span class="st0">'.'</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
    <a href="http://scala-lang.org"><span class="kw1">val</span></a> probcfile <span class="sy0">=</span> <a href="http://scala-lang.org"><span class="kw1">new</span></a> File<span class="br0">&#40;</span>classesDir, cname + <span class="st0">&quot;.class&quot;</span><span class="br0">&#41;</span>
&nbsp;
    <a href="http://scala-lang.org"><span class="kw1">if</span></a> <span class="br0">&#40;</span>probfile.<span class="me1">lastModified</span> <span class="sy0">&gt;</span> probcfile.<span class="me1">lastModified</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
      println<span class="br0">&#40;</span><span class="st0">&quot;Processing file: &quot;</span> + fname0<span class="br0">&#41;</span>
&nbsp;
&nbsp;
      <a href="http://scala-lang.org"><span class="kw1">val</span></a> settings <span class="sy0">=</span> <a href="http://scala-lang.org"><span class="kw1">new</span></a> Settings<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp;
       settings.<span class="me1">target</span>.<span class="me1">value</span> <span class="sy0">=</span> <span class="st0">&quot;jvm-1.5&quot;</span>
<span class="co1">//       settings.classpath.value = System.getProperty(&quot;java.class.path&quot;)</span>
       settings.<span class="me1">classpath</span>.<span class="me1">value</span> <span class="sy0">=</span> <span class="st0">&quot;./target/campingwijzer-1.0-SNAPSHOT-jar-with-dependencies.jar&quot;</span>
       println <span class="br0">&#40;</span><span class="st0">&quot;Class ist : &quot;</span> + settings.<span class="me1">classpath</span><span class="br0">&#41;</span>
&nbsp;
       settings.<span class="me1">deprecation</span>.<span class="me1">value</span> <span class="sy0">=</span> <a href="http://scala-lang.org"><span class="kw1">true</span></a> <span class="co1">// enable detailed deprecation warnings</span>
       settings.<span class="me1">unchecked</span>.<span class="me1">value</span> <span class="sy0">=</span> <a href="http://scala-lang.org"><span class="kw1">true</span></a> <span class="co1">// enable detailed unchecked warnings</span>
       settings.<span class="me1">outdir</span>.<span class="me1">value</span> <span class="sy0">=</span> classesDir.<span class="me1">getPath</span>
       <a href="http://scala-lang.org"><span class="kw1">val</span></a> reporter <span class="sy0">=</span> <a href="http://scala-lang.org"><span class="kw1">new</span></a> ConsoleReporter<span class="br0">&#40;</span>settings<span class="br0">&#41;</span>
&nbsp;
       <a href="http://scala-lang.org"><span class="kw1">val</span></a> compiler <span class="sy0">=</span> <a href="http://scala-lang.org"><span class="kw1">new</span></a> Global<span class="br0">&#40;</span>settings, reporter<span class="br0">&#41;</span>
       <a href="http://scala-lang.org"><span class="kw1">val</span></a> run <span class="sy0">=</span> <span class="br0">&#40;</span><a href="http://scala-lang.org"><span class="kw1">new</span></a> compiler.<span class="me1">Run</span><span class="br0">&#41;</span>
       run.<span class="me1">compile</span><span class="br0">&#40;</span>List<span class="br0">&#40;</span>fname0<span class="br0">&#41;</span><span class="br0">&#41;</span>
       println <span class="br0">&#40;</span><span class="st0">&quot;Compilation erfolgreich&quot;</span><span class="br0">&#41;</span></pre>
<br />
wie man sieht gebe ich für die Kompilierung einen classpath explicit zu einer Jar-Datei an die alle notwendigen Komponenten enthält. Wenn ich das weglasse, dann funktioniert die Kompilierung nicht! Das verstehe ich nicht ganz. Obiger Code wird aus einer Jar-Datei heraus ausgeführt, der die entsprechenden Bibliotheken enthält (um es genau zu sagen es ist die gleiche Jar-Datei die in obigen Code referenziert wird!) Dann müsst man doch den Classpath nicht mehr so angeben müssen.  Das ganze ist nicht nur eine Prinzipienreiterei von mir. Es führt auch dazu dass ich nicht einfach die Jar-Datei nutzen kann, da ich ja den Pfad oben zu der Jar-Datei hart kodieren muss. <br />
<br />
Kann ich nicht einfach sagen: benutze alles was im Standard-Classpath liegt UND in der Jar-Datei aus der Du ausgeführt wurdest?<br />
<br />
Gruß<br />
Marc]]></summary>
    </entry>
    <entry>
        <title type="html">[gelöst] Sichtbarkeit von Objekten (15 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,1751,1751#msg-1751" />
        <category term="Scala-Programmierung" />
        <published>2010-07-18T13:28:02+02:00</published>
        <updated>2010-08-09T11:02:27+02:00</updated>
        <id>http://scala-forum.org/read.php?11,1751,1751#msg-1751</id>
        <author>
            <name>kapest</name>
        </author>
        <summary type="html"><![CDATA[ Hallo,<br />
<br />
ich habe es so verstanden, daß in Scala alle Objekte grundsätzlich sichtbar sind, wenn sie nicht explizit versteckt werden.<br />
Ich habe folgenden Code geschrieben:<br />
<pre class="bbcode">
object main extends SimpleGUIApplication {
	
	def top = new MainFrame {
		title = &quot;SplitPane - Die Erste&quot;
		val framewidth = 640
		val frameheight = 480
                ...
        }
...
	def mpanel = new SplitPane(Orientation.Vertical, left, right) {
		dividerLocation = top.<u><b>framewidth</b></u> / 2
	}</pre>
Das Wort framewidth in mpanel bemeckert der Compiler.<br />
Weiss Jemand Rat?<br />
<br />
Viele Dank<br />
Peter]]></summary>
    </entry>
    <entry>
        <title type="html">Aus Scala einen Code der Sprache X erzeugen. Wie? (6 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,1748,1748#msg-1748" />
        <category term="Scala-Programmierung" />
        <published>2010-07-17T22:51:58+02:00</published>
        <updated>2010-07-20T14:37:44+02:00</updated>
        <id>http://scala-forum.org/read.php?11,1748,1748#msg-1748</id>
        <author>
            <name>Siassei</name>
        </author>
        <summary type="html"><![CDATA[ Hallo,<br />
<br />
ich weiß nicht ob ich hier eine Antwort erhalte, aber ein Versuch ist es wert :-)<br />
<br />
ScalaCL, Lift, (mit einer Ausnahme) Googles GWT, ... erzeugen aus einer Hochsprache Code für HTML, JavaScript, OpenCL, ...<br />
Doch wie funktioniert das nun eigentlich genau? Diese Frage stellte ich mir vor ein paar Wochen und bin noch keinen Schritt weiter :-(<br />
Gut, im Falle Google kann ich mir das mit Reflection sehr gut vorstellen. Aber wie sieht der Ansatz in Scala aus? Das Lift-Framework habe ich in den letzten Wochen lieben gelernt und benutze es sehr gerne.<br />
<br />
Aus diesem Grund interessiere ich mich sehr dafür, wie man hier generell vorgeht. Kann mir hier jemand weiterhelfen?<br />
<br />
(Besonders interessant, da ich dieses Feature von Scala noch nicht kannte, ist das Beispiel im Kapitel 4.1 des Buches Exploring Lift Seite 49-50. Es verweist auf das Kapitel 6.23 von ScalaReference)<br />
[<a href="http://www.scala-lang.org/docu/files/ScalaReference.pdf" rel="nofollow" >www.scala-lang.org</a>]<br />
[<a href="http://groups.google.com/group/the-lift-book" rel="nofollow" >groups.google.com</a>]  (ganz unten)<br />
<br />
Gruß,<br />
  Thomas]]></summary>
    </entry>
    <entry>
        <title type="html">[gelöst]Eclipse behauptet ToolKit is not a Member of java.awt (no Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,1746,1746#msg-1746" />
        <category term="Scala-Programmierung" />
        <published>2010-07-17T14:07:22+02:00</published>
        <updated>2010-07-17T14:07:22+02:00</updated>
        <id>http://scala-forum.org/read.php?11,1746,1746#msg-1746</id>
        <author>
            <name>kapest</name>
        </author>
        <summary type="html"><![CDATA[ Hallo allerseits,<br />
<br />
ich bin gerade dabei meine Programmierergebnisse mit scala.swing vom letzten Wochenende aufzubereiten. Ich habe das erste Listing (MainFrame mit Flowpanel auf dem Bildschirm zentriert) mit ausführlichem Kommentar eingetippt und Eclipse bemängelt  folgenden Code (unterstrichen):<br />
<pre class="bbcode">
		import <u>java.awt.ToolKit</u>._
		val screenSize = getDefaultToolkit().getScreenSize()
		location = new Point((screenSize.width - framewidth)/2, (screenSize.height - frameheight)/2 )
		minimumSize = new Dimension(framewidth, frameheight)</pre>
und<br />
<pre class="bbcode">
                val screenSize = <u>java.awt.ToolKit</u>.getDefaultToolkit().getScreenSize()</pre>
bringt das selbe Ergebnis :-(<br />
<br />
sonderbar - letztes Wochenende funktionierte es ?!<br />
<br />
Als Tooltip erscheint die im Titel angegebene Fehlermeldung.<br />
<br />
Aus den sonstigen Fehlermeldungen von Eclipse werde ich nicht schlau:<br />
<pre class="bbcode">
Exception in thread &quot;main&quot; java.lang.NoClassDefFoundError: FramesAndPanels/main
Caused by: java.lang.ClassNotFoundException: FramesAndPanels.main
	at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:334)
Could not find the main class: FramesAndPanels.main. Program will exit.</pre>
Ich hoffe es hat jemand eine Idee dazu.<br />
<br />
Ergänzung: java libs scheint Eclipse überhaupt nicht zu kennen. java.awt.Dimension geht auch nicht.<br />
Also jawa.awt.Dimension und java.awt.Point funktionieren.<br />
<br />
Jetzt versteh' ich garnichts mehr:<br />
aus dem Listing vom letzten Wochenende kopiert und eingefügt funktioniert diese Zeile:<br />
<pre class="bbcode">
                val screenSize = java.awt.ToolKit.getDefaultToolkit().getScreenSize()</pre>
von Hand heute eingetippt - Fehler s.o. <br />
<br />
<b><u>Lösung:</u></b><br />
Peinlich : ich hatte ein K statt k getippt. - Ich gelobe Besserung<br />
<br />
Vielen Dank<br />
Peter]]></summary>
    </entry>
    <entry>
        <title type="html">[gelöst] Wie bekomme ich komponenten auf ein BorderPanel? (5 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,1702,1702#msg-1702" />
        <category term="Scala-Programmierung" />
        <published>2010-07-10T13:29:48+02:00</published>
        <updated>2010-07-12T11:28:34+02:00</updated>
        <id>http://scala-forum.org/read.php?11,1702,1702#msg-1702</id>
        <author>
            <name>kapest</name>
        </author>
        <summary type="html"><![CDATA[ Hallo,<br />
<br />
ja ich bin's schon wieder. Nachdem ich ein FlowPanel erfolgreich erstellt habe, wollte ich mein neu erworbenes Wissen gleich am BorderPanel ausprobieren. Und schon fall ich auf die Schn....<br />
<br />
BorderPanel hat laut Tooltips in Eclipse kein contents. In der API ist es aber aufgeführt. Dort gibt auch noch layout(myComponent)=myConstraits. Also flux ans Werk:<br />
<pre class="bbcode">
import swing._
import java.awt.Color._ // für die Farben

object main extends SimpleGUIApplication {
	
// Basisrahmen erzeugen - Titel, Groesse und Position festlegen
	
	def top = new MainFrame {
		title=&quot;Test&quot;
		val framewidth = 640
		val frameheight = 480
		val screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize()
		location = new java.awt.Point((screenSize.width - framewidth)/2, (screenSize.height - frameheight)/2)
		minimumSize = new java.awt.Dimension(framewidth, frameheight)

// Komponenten erzeugen - hier 4 Knoepfe
		
		val bt1 = new Button {  
			text = &quot;Click Me!&quot;
		}
		
		val bt2 = new Button {  
			text = &quot;Drücke mich&quot;
		}
		
		val bt3 = new Button {  
			text = &quot;Mich auch !!!&quot;
		}
		
		val bt4 = new Button {  
			text = &quot;Ok&quot;
		}

/* 
 * Panel erzeugen auf dem die Knöpfe darfestellt werden
 * Vorder- und Hintergrundfarbe des Panel bestimmen und
 * die Knoepfe zuweisen
 * Es geht nur mit FlowPanel. bei allen anderen lassen 
 * sich keine Kompnenten zuweisen. 
 */
		
		def panel1 = new BorderPanel {
                        import BorderPanel.Position          // Dieser Import war noch erforderlich!

			background = blue
			foreground = green

// so geht es nicht:			
//			<b>layout(bt1)=North
//			layout(bt2) += south
//			layout(bt3) += West
//			layout(bt4) += &quot;East&quot;</b>

// so geht es:
                        layout(bt1) = Position.North
			layout(bt2) = Position.South
			layout(bt3) = Position.West
			layout(bt4) = Position.East

		}

// Panel panel1 dem MainFrame zuweisen
		
		contents = panel1
	}
}</pre>
<br />
Keins der 4 Layout-Definitions-Versuche fanden die Zustimmung des Compilers:-((<br />
Fehlermeldung: <br />
- typemismatch; found java.lang.String: required this.Constraits<br />
- not found: Value North<br />
<br />
Das steht in de Quelle von BorderPanel:<br />
<pre class="bbcode">
 object Position extends Enumeration {
	    val North = Value(BorderLayout.NORTH)
	    val South = Value(BorderLayout.SOUTH)
	    val West = Value(BorderLayout.WEST)
	    val East = Value(BorderLayout.EAST)
	    val Center = Value(BorderLayout.CENTER)
	  }</pre>
<br />
Dieser Versuch:<br />
<pre class="bbcode">
layout(bt1)= this.North</pre>
ergibt: value North is not a Member of scala.swing.BorderPanel - Das verwirrt mich jetzt komplett.<br />
<br />
Außerdem habe ich die Button-Definitionen von def auf val geändert. In den Beispielen im Odersky ist das auch so.<br />
Ist es eigentlich egal ob ich val oder def nehme?<br />
<br />
So das waren wieder eine ganze Menge Fragen. Ich hoffe Ihr könnt mir dabei auch helfen.<br />
<br />
Nun habe ich mir selbst helfen können. In meinen gesammelten Unterlagen habe ich eine UIDemo.scala von der epfl gefunden. Da war das so dargestellt. <br />
<br />
Scala.swing zu Programmieren ist ein richtiges Abenteuer. Man muss das ganze Internet Durchsuchen und dann auch noch die richtigen Stellen finden. <br />
<br />
Vielen Dank<br />
Peter]]></summary>
    </entry>
    <entry>
        <title type="html">[gelöst] scala.swing.MainFrame.background geht nicht (15 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,1664,1664#msg-1664" />
        <category term="Scala-Programmierung" />
        <published>2010-07-06T19:45:00+02:00</published>
        <updated>2010-07-10T16:36:24+02:00</updated>
        <id>http://scala-forum.org/read.php?11,1664,1664#msg-1664</id>
        <author>
            <name>kapest</name>
        </author>
        <summary type="html"><![CDATA[ Hallo Scala Programmierer,<br />
<br />
ich fange gerade an mich mit scala zu beschäfftigen. Vorher habe ich vor allen für Mikrocontroller in Assembler und Basic (Bascom) programmiert. Auf dem PC ein wenig mit C, Java und C# herumgespielt. Ich mache das alles nur zum Spass - ich bin kein Profi. - soviel zur Vorstellung.<br />
<br />
Nun zur Frage:<br />
Ich versuche gerade erste Schritte mit GUI-Programmierung in Scala zu machen. Ein Fenster zu öffnen klappt. Nun wollte ich das Fenster einfärben. Beim Aufbau erscheint es auch kurz in blau, dann legt sich aber wieder das Standard-Grau darüber.<br />
<br />
Hier mein kleines Testprogramm:<br />
<br />
<span style="color:#00CCFF">package fenster_001<br />
<br />
/* Hier soll die grafische Oberfläche mit swing ausprobiert werden<br />
 * <br />
 * kapest 4.7.2010<br />
 * <br />
 * zuerst nur ein einfaches Fenster<br />
 * nun soll das Fenster zentriert auf dem Bildschirm<br />
 * dargestellt werden<br />
 * <br />
 * Quelle: Tutorial: Erste GUI-Anwendungen mit Scala<br />
 * [<a href="http://jr-thies.de/index.php" rel="nofollow" >jr-thies.de</a>]<br />
 * <br />
 */<br />
<br />
import swing._<br />
<br />
object main extends SimpleGUIApplication {<br />
	def top = new MainFrame {<br />
		title=&quot;Test&quot;<br />
		background = java.awt.Color.blue<br />
//		background_=(java.awt.Color.blue) // geht auch<br />
		val framewidth = 640<br />
		val frameheight = 480<br />
		val screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize()<br />
		location = new java.awt.Point((screenSize.width - framewidth)/2, (screenSize.height - frameheight)/2)<br />
		minimumSize = new java.awt.Dimension(framewidth, frameheight)<br />
//		minimumSize_=(new java.awt.Dimension(framewidth, frameheight)) // geht auch<br />
//		repaint()  // bringt nichts<br />
//		visible = true  // bringt nichts<br />
	}<br />
}</span><br />
<br />
<br />
Ich habe etwas erfolglos herumprobiert. Ich habe soetwas schon einmal erlebt. Ich glaube unter JAVA in einem DOS-Fenster. Da war noch ein weiterer Befehl erforderlich und dann klappte es. Ich habe in der scala.swing API aber nichts gefunden.<br />
<br />
Ich arbeite unter Ubuntu 10.4 mit Eclipse 3.5 und dem Scala-Plug-In (2.8). Irgendwo hatte ich einen Hinweis gefunden, das das an OpenJDK liegen könnte. Deshalb habe ich SunJAVA nachinstalliert. Ich habe aber keine Möglichkeit gefunden Eclipse nun darauf umzuschalten.<br />
<br />
Ich hoffe es wird hier im Forum jemanden geben der mir weiterhilft.<br />
Vielen Dank schon mal<br />
Peter<br />
(kapest)]]></summary>
    </entry>
    <entry>
        <title type="html">Objekt von [T] erzeugen (1 antworten)</title>
        <link href="http://scala-forum.org/read.php?11,1580,1580#msg-1580" />
        <category term="Scala-Programmierung" />
        <published>2010-06-20T16:31:51+02:00</published>
        <updated>2010-06-20T17:35:02+02:00</updated>
        <id>http://scala-forum.org/read.php?11,1580,1580#msg-1580</id>
        <author>
            <name>Siassei</name>
        </author>
        <summary type="html"><![CDATA[ Servus,<br />
<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div><a href="http://scala-lang.org"><span class="kw1">def</span></a> converTo<span class="br0">&#91;</span>T <span class="sy0">&lt;:</span> A<span class="br0">&#93;</span><span class="br0">&#40;</span>v<span class="sy0">:</span>AnyRef<span class="br0">&#41;</span><span class="sy0">:</span>T <span class="sy0">=</span> <span class="br0">&#123;</span>
  v <a href="http://scala-lang.org"><span class="kw1">match</span></a> <span class="br0">&#123;</span>
    <a href="http://scala-lang.org"><span class="kw1">case</span></a> ClassA<span class="br0">&#40;</span>x, y, z<span class="br0">&#41;</span> <span class="sy0">=&gt;</span> <span class="br0">&#123;</span>
        <span class="co1">// Problem with new T(x, y, z, i)</span>
      <span class="br0">&#125;</span>
    <span class="co1">// ....</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre>
Dieses Snippest soll mein akt. Problem etwas veranschaulichen. Ich schreibe gerade an einer Konvertierungsmethode und würde diese gerne so umsetzen, wie beschrieben.<br />
<br />
Wie erzeuge ich nun eine Instanz vom Typ T?<br />
Ist das überhaupt möglich? Wie würde eine Alternative aussehen?<br />
<br />
Gruß,<br />
  Thomas]]></summary>
    </entry>
    <entry>
        <title type="html">Type Mismatch bei Funktionsliteralen (1 antworten)</title>
        <link href="http://scala-forum.org/read.php?11,1563,1563#msg-1563" />
        <category term="Scala-Programmierung" />
        <published>2010-06-15T06:36:01+02:00</published>
        <updated>2010-06-15T09:31:03+02:00</updated>
        <id>http://scala-forum.org/read.php?11,1563,1563#msg-1563</id>
        <author>
            <name>marc.gorzala</name>
        </author>
        <summary type="html"><![CDATA[ Hallo zusammen,<br />
<br />
ich habe folgendes Problem:<br />
<br />
Im Companion-Object (heißt Document) habe ich folgendes Funktionsliteral definiert und einer Val zugewiesen:<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div><a href="http://scala-lang.org"><span class="kw1">val</span></a> nextAdPos <span class="sy0">=</span> <span class="br0">&#40;</span>pos<span class="sy0">:</span> <span class="br0">&#40;</span>Int,Int,Int<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">=&gt;</span> <span class="br0">&#123;</span>
    <a href="http://scala-lang.org"><span class="kw1">val</span></a> <span class="br0">&#40;</span>page, x, y<span class="br0">&#41;</span> <span class="sy0">=</span> pos
    <a href="http://scala-lang.org"><span class="kw1">var</span></a> result <span class="sy0">=</span> <span class="br0">&#40;</span>page, x, y<span class="br0">&#41;</span>
    <span class="co1">// can we go right?</span>
    <a href="http://scala-lang.org"><span class="kw1">if</span></a> <span class="br0">&#40;</span>x<span class="sy0">&lt;</span>2<span class="br0">&#41;</span> result <span class="sy0">=</span> <span class="br0">&#40;</span>page, x+1, y<span class="br0">&#41;</span>
    <a href="http://scala-lang.org"><span class="kw1">else</span></a>
    <span class="co1">// can we go bottom?</span>
    <a href="http://scala-lang.org"><span class="kw1">if</span></a> <span class="br0">&#40;</span>y<span class="sy0">&lt;</span>8<span class="br0">&#41;</span> result <span class="sy0">=</span> <span class="br0">&#40;</span>page, 1, y+1<span class="br0">&#41;</span>
    <a href="http://scala-lang.org"><span class="kw1">else</span></a> result <span class="sy0">=</span> <span class="br0">&#40;</span>page+<span class="nu0">1</span>,<span class="nu0">1</span>,<span class="nu0">1</span><span class="br0">&#41;</span>
    result
  <span class="br0">&#125;</span></pre>
<br />
Innerhalb der Klasse möchte ich diese Funktion als Argument an eine Methode übergeben:<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div>obj <a href="http://scala-lang.org"><span class="kw1">match</span></a> <span class="br0">&#123;</span>
      <a href="http://scala-lang.org"><span class="kw1">case</span></a> x<span class="sy0">:</span> Ad <span class="sy0">=&gt;</span> here <span class="sy0">=</span> searchFrom<span class="br0">&#40;</span> <span class="br0">&#40;</span>1,1,1<span class="br0">&#41;</span>, Document.<span class="me1">nextAdPos</span><span class="br0">&#41;</span>
      <a href="http://scala-lang.org"><span class="kw1">case</span></a> x<span class="sy0">:</span> BasisInformation <span class="sy0">=&gt;</span> here <span class="sy0">=</span> searchFrom<span class="br0">&#40;</span> <span class="br0">&#40;</span><span class="nu0">1</span>,<span class="nu0">1</span>,<span class="nu0">1</span><span class="br0">&#41;</span>, Document.<span class="me1">nextBiPos</span> <span class="br0">&#41;</span>
    <span class="br0">&#125;</span></pre>
<br />
das gibt bei mir folgende Meldung<br />
<pre class="bbcode">
[INFO] Compiling 7 source files to /home/marc/Diplomarbeit/trunk/campingwijzer-ga/target/classes at 1276575858415
[ERROR] /home/marc/Diplomarbeit/trunk/campingwijzer-ga/src/main/scala/de/gorzala/campingwijzer/model/Document.scala:83: error: type mismatch;
[INFO]  found   : ((Int, Int, Int)) =&gt; (Int, Int, Int)
[INFO]  required: (Int, Int, Int) =&gt; (Int, Int, Int)
[INFO]       case x: Ad =&gt; here = searchFrom( (1,1,1), Document.nextAdPos)
[INFO]                                                          ^
[ERROR] /home/marc/Diplomarbeit/trunk/campingwijzer-ga/src/main/scala/de/gorzala/campingwijzer/model/Document.scala:84: error: type mismatch;
[INFO]  found   : ((Int, Int, Int)) =&gt; (Int, Int, Int)
[INFO]  required: (Int, Int, Int) =&gt; (Int, Int, Int)
[INFO]       case x: BasisInformation =&gt; here = searchFrom( (1,1,1), Document.nextBiPos )
[INFO]                                                                        ^</pre>
<br />
Das verstehe ich nun nicht ganz. So wie das lese behauptet der Scala-Compiler das mein im Companion-Object definiertes Funktionsliteral diese Signatur hat: ((Int, Int, Int)) =&gt; (Int, Int, Int). Soweit ich das sehe ist die aber (Int, Int, Int) =&gt; (Int, Int, Int) und alles müsste funktionieren, oder?<br />
<br />
übergeben möchte ich das übrigens an folgende Methode in der Klasse Document<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div><a href="http://scala-lang.org"><span class="kw1">def</span></a> searchFrom<span class="br0">&#40;</span>current<span class="sy0">:</span> <span class="br0">&#40;</span>Int, Int, Int<span class="br0">&#41;</span>, next<span class="sy0">:</span> <span class="br0">&#40;</span>Int, Int, Int<span class="br0">&#41;</span> <span class="sy0">=&gt;</span> <span class="br0">&#40;</span>Int, Int, Int<span class="br0">&#41;</span><span class="br0">&#41;</span>
                    <span class="sy0">:</span> Option<span class="br0">&#91;</span><span class="br0">&#40;</span>Int, Int, Int<span class="br0">&#41;</span><span class="br0">&#93;</span><span class="sy0">=</span> <span class="br0">&#123;</span>
      <a href="http://scala-lang.org"><span class="kw1">val</span></a> <span class="br0">&#40;</span>pageNumber, x, y<span class="br0">&#41;</span> <span class="sy0">=</span> current
      <a href="http://scala-lang.org"><span class="kw1">if</span></a> <span class="br0">&#40;</span>fit<span class="br0">&#40;</span>obj, pageNumber, x, y<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
        println <span class="br0">&#40;</span><span class="st0">&quot;Treffer&quot;</span><span class="br0">&#41;</span>
.....</pre>
<br />
Wäre schön wenn jemand Rat weiß<br />
<br />
Gruß<br />
Marc]]></summary>
    </entry>
    <entry>
        <title type="html">Allgemeine Frage zu Objektorientierter Modellierung einer zustandslosen Klasse (4 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,1478,1478#msg-1478" />
        <category term="Scala-Programmierung" />
        <published>2010-06-02T14:14:23+02:00</published>
        <updated>2010-07-09T09:25:54+02:00</updated>
        <id>http://scala-forum.org/read.php?11,1478,1478#msg-1478</id>
        <author>
            <name>marc.gorzala</name>
        </author>
        <summary type="html"><![CDATA[ Ich möchte in etwa eine Klasse Schreiben mit folgenden zwei Konstruktoren:<br />
<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div>Population<span class="br0">&#40;</span>members <span class="sy0">:</span> List<span class="br0">&#91;</span>Int<span class="br0">&#93;</span>, time<span class="sy0">:</span> Int<span class="br0">&#41;</span></pre>
und <br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div>Population<span class="br0">&#40;</span>members <span class="sy0">:</span> List<span class="br0">&#91;</span>Int<span class="br0">&#93;</span><span class="br0">&#41;</span></pre>
<br />
für den Fall das der Parameter time nicht angegeben wurde dann sollte dieser mit 0 belegt sein. Da ich mir versuche anzugewöhnen so gut es geht keine vars sondern nur vals zu nutzen, bin ich mir nicht ganz sicher wie ich das geschickt anstelle.<br />
<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div><a href="http://scala-lang.org"><span class="kw1">class</span></a> Population<span class="br0">&#40;</span>members<span class="sy0">:</span> List<span class="br0">&#91;</span>Int<span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
  <a href="http://scala-lang.org"><span class="kw1">val</span></a> time <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
  <a href="http://scala-lang.org"><span class="kw1">def</span></a> <a href="http://scala-lang.org"><span class="kw1">this</span></a><span class="br0">&#40;</span>members<span class="sy0">:</span> List<span class="br0">&#91;</span>Int<span class="br0">&#93;</span>, time<span class="sy0">:</span> Int<span class="br0">&#41;</span> <span class="sy0">=</span> <span class="br0">&#123;</span>
    <a href="http://scala-lang.org"><span class="kw1">this</span></a>.<span class="me1">time</span> <span class="sy0">=</span> time
  <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre>
<br />
das funktioniert natürlich nicht. Aber wie mache ich das am besten?<br />
<br />
Gruß<br />
Marc]]></summary>
    </entry>
    <entry>
        <title type="html">Frage zu Traits (1 antworten)</title>
        <link href="http://scala-forum.org/read.php?11,1378,1378#msg-1378" />
        <category term="Scala-Programmierung" />
        <published>2010-05-09T17:48:17+02:00</published>
        <updated>2010-05-09T23:18:49+02:00</updated>
        <id>http://scala-forum.org/read.php?11,1378,1378#msg-1378</id>
        <author>
            <name>Ulrikop</name>
        </author>
        <summary type="html"><![CDATA[ Hallo,<br />
wenn ich so die letzten Beitrag hier anschaue habe ich zwar keine große Hoffnung, dass mir bald wer antwortet aber probieren kann ich es mal.<br />
<br />
Habe 2 Fragen zu den Traits:<br />
Es heißt Traits kann man mit extends und with einbinden. Wo ist genau der unterschied zwischen den beiden Schlüsselwörter (außer dass extends nur einmal vorkommen kann und dass man mit with nur Traits einbinden kann).<br />
Erst dachte ich, dass nur die Methoden der Klasse, die mit extend eingebundene wurde, mit super aufrufbar ist. Das ist aber nicht so.<br />
Dann dachte ich, dass nur die Klasse bei extends ihre super-Klassen noch mit einbringt. Aber ein trait der weiter vorne stand, der ein extends in seinem Code hatte, band diese Klasse auch noch mit ein (ok, die Klasse wird nicht direkt von dem Trait eingebunden aber da dieser der linkeste war der die Klasse brauchte, hat er es veranlasst).<br />
Weiß nicht ob ihr meinen Gedanken folgen könnt, bisschen verwirrend :-)<br />
Mir würde aber eh reichen, wenn mir einer nur den genauen Unterschied zwischen extends und with erklären kann, da ich bis jetzt finde, dass ein Schlüsselwort für biedes gereicht hätte.<br />
<br />
<br />
Zweite Frage:<br />
Wenn ich in einem Trait extend mache (trait A extends B) stelle ich sicher, dass die Methoden von B auch da sind. So kann ich sie überschreiben, super aufrufen etc.<br />
Was ist nun wenn ich mehr traits einbinden (class Q extends D with E) die nichts miteinander zu tun haben, also alleinstehen sind. Trait D und E haben beide die gleiche Methode def tuWas implementiert. Nun kommt immer die Fehlermeldung, dass die Methode tuWas von E eine andere überschreibt und nen override-Modifier braucht. Diesen kann man natürlich in E nicht hinschreiben weil der Kompilier dann sagt, er überschreibt nichts (E weiß ja von D nichts).<br />
Vom Gefühl her würde ich sagen, dass man Traits nur einbinden kann, wenn alle implementierten Methoden nicht schon da sind. Aber würde mir gern da sicher gehen und die Bestätigung bekommen (vorallem weil ich in manchen Texten das Gefühl hatte, dass with nur die Methoden einbinden würde, die noch nicht da sind). Falls es eine Möglichkeit zu sagen, dass der Trait den man einbindet die anderen Methoden einfach überschreiben soll oder dass man nur bestimmte Methoden einbinden kann, würde ich mich über eine Lösung freuen.<br />
<br />
Danke]]></summary>
    </entry>
    <entry>
        <title type="html">Wie realisiert man eine MessageBox für X Actors? (1 antworten)</title>
        <link href="http://scala-forum.org/read.php?11,1257,1257#msg-1257" />
        <category term="Scala-Programmierung" />
        <published>2010-04-04T20:30:45+02:00</published>
        <updated>2010-04-04T21:11:58+02:00</updated>
        <id>http://scala-forum.org/read.php?11,1257,1257#msg-1257</id>
        <author>
            <name>Siassei</name>
        </author>
        <summary type="html"><![CDATA[ Servus,<br />
<br />
ein Actor sammelt Informationen und soll diese an einem Ort abspeichern. Dieser Ort soll von einem Actor-Pool, mit max. X Actors, überwacht werden und danach das ganze abarbeiten.<br />
<br />
In Java kein Problem, aber wie realisiert man das in Scala? Die Bücher schweigen zu diesem Thema.<br />
<br />
Vielen Dank im voraus,<br />
  Thomas]]></summary>
    </entry>
    <entry>
        <title type="html">Hibernate und SyncVar (2 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,1249,1249#msg-1249" />
        <category term="Scala-Programmierung" />
        <published>2010-04-03T18:25:28+02:00</published>
        <updated>2010-04-03T23:49:19+02:00</updated>
        <id>http://scala-forum.org/read.php?11,1249,1249#msg-1249</id>
        <author>
            <name>Siassei</name>
        </author>
        <summary type="html"><![CDATA[ Servus,<br />
<br />
ich habe ein kleines Problem. Ich nutze mehrere Entity zum speichern von Daten, die während der Ausführung gesammelt werden. Beispiel:<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div><a href="http://scala-lang.org"><span class="kw1">abstract</span></a> <a href="http://scala-lang.org"><span class="kw1">class</span></a> Job <span class="br0">&#123;</span>
&nbsp;
  <a href="http://scala-lang.org"><span class="kw1">var</span></a> state<span class="sy0">:</span>SyncVar<span class="br0">&#91;</span>Int<span class="br0">&#93;</span> <span class="sy0">=</span> Job.<span class="me1">Stop</span>
&nbsp;
  <a href="http://scala-lang.org"><span class="kw1">var</span></a> from<span class="sy0">:</span> FileSystem
  <a href="http://scala-lang.org"><span class="kw1">var</span></a> to  <span class="sy0">:</span> FileSystem
&nbsp;
&nbsp;
  <span class="coMULTI">/**
   * Fortschritt: 0.0 - 1.0
   * 
   */</span>
  <a href="http://scala-lang.org"><span class="kw1">protected</span></a> <a href="http://scala-lang.org"><span class="kw1">var</span></a> progress<span class="sy0">:</span>SyncVar<span class="br0">&#91;</span>Double<span class="br0">&#93;</span> <span class="sy0">=</span> <span class="nu0">0.0</span>
&nbsp;
&nbsp;
  <span class="coMULTI">/**
   *
   */</span>
  <a href="http://scala-lang.org"><span class="kw1">def</span></a> doWork<span class="sy0">:</span>Unit
&nbsp;
<span class="br0">&#125;</span></pre>
So, wie kann ich jetzt Hibernate mitteilen, dass mit z.B. progress.get und progress.set der Inhalt gesetzt werden kann?<br />
<br />
Frage: Was spricht gegen<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div><a href="http://scala-lang.org"><span class="kw1">implicit</span></a> <a href="http://scala-lang.org"><span class="kw1">def</span></a> getValue <span class="sy0">=</span> get
<a href="http://scala-lang.org"><span class="kw1">implicit</span></a> <a href="http://scala-lang.org"><span class="kw1">def</span></a> getValue <span class="sy0">=</span> put</pre>
in SyncVar? Das würde das ganze vereinfachen. <br />
Kann man das als &quot;Externer&quot; in die Versio 2.8 einfließen lassen?<br />
Ich hätte da noch ein paar Erweiterungen für swing, wenn ich die Freigabe erhalte]]></summary>
    </entry>
    <entry>
        <title type="html">Generic Function (2 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,1123,1123#msg-1123" />
        <category term="Scala-Programmierung" />
        <published>2010-03-05T12:19:49+01:00</published>
        <updated>2010-03-05T15:08:33+01:00</updated>
        <id>http://scala-forum.org/read.php?11,1123,1123#msg-1123</id>
        <author>
            <name>RhysCraw</name>
        </author>
        <summary type="html"><![CDATA[ Hi!<br />
<br />
Ich möchte innerhalb eines Objektes, das eine Sammlung häufig verwendeter Methoden bzw. Funktionen darstellt, eine generische Funktion beschreiben, die mit jeden Typ funktioniert. Doch ich bekomme das nicht hin. In meinem Beispiel soll ein Wert einem Array hinzugefügt werden:<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div><a href="http://scala-lang.org"><span class="kw1">def</span></a> addToArray<span class="br0">&#91;</span>A<span class="br0">&#93;</span><span class="br0">&#40;</span>value<span class="sy0">:</span>A, array<span class="sy0">:</span>Array<span class="br0">&#91;</span>A<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">:</span> Array<span class="br0">&#91;</span>A<span class="br0">&#93;</span> <span class="sy0">=</span> <a href="http://scala-lang.org"><span class="kw1">new</span></a> Array<span class="br0">&#91;</span>A<span class="br0">&#93;</span><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span></pre>
Normalerweise müsste er doch jetzt ein Array des Typs A mit der Länge 0 zurückgeben. Stattdessen heißt es nur &quot;cannot find class manifest for element&quot;. In diesem Fall funktioniert es allerdings:<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div><a href="http://scala-lang.org"><span class="kw1">def</span></a> add<span class="br0">&#91;</span>A<span class="br0">&#93;</span><span class="br0">&#40;</span>x<span class="sy0">:</span> A, y<span class="sy0">:</span> A<span class="br0">&#41;</span><span class="br0">&#40;</span><a href="http://scala-lang.org"><span class="kw1">implicit</span></a> numeric<span class="sy0">:</span> Numeric<span class="br0">&#91;</span>A<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">:</span> A <span class="sy0">=</span> numeric.<span class="me1">plus</span><span class="br0">&#40;</span>x,y<span class="br0">&#41;</span></pre>
Wie beschreibe ich nun, dass bei meinem ersten Beispiel, alle Typen erlaubt sind? implicit mit Any, oder wie? Generics sind mir echt nicht geheuer. o.O<br />
Danke für eure Hilfe!<br />
RhysCraw]]></summary>
    </entry>
    <entry>
        <title type="html">case klasse mit bestehender hierarchie verwursten (4 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,1094,1094#msg-1094" />
        <category term="Scala-Programmierung" />
        <published>2010-02-20T12:11:28+01:00</published>
        <updated>2010-02-21T11:09:16+01:00</updated>
        <id>http://scala-forum.org/read.php?11,1094,1094#msg-1094</id>
        <author>
            <name>HamsterofDeath</name>
        </author>
        <summary type="html"><![CDATA[ ich habe zur übung einen kleinen parser für einfache ausdrücke wie &quot;1+1*((7+5)*5/25+1+1*(((7+5)*5/25+1000+(10*10)+1)*7)+(10*10)+1)*7&quot; geschrieben<br />
<br />
der code:<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div><a href="http://scala-lang.org"><span class="kw1">package</span></a> org.<span class="me1">tsug</span>.<span class="me1">hod</span>
&nbsp;
<span class="coMULTI">/**
 * Created by IntelliJ IDEA.
 * User: HoD
 * Date: 18.02.2010
 * Time: 19:45:45
 * To change this template use File | Settings | File Templates.
 */</span>
&nbsp;
<a href="http://scala-lang.org"><span class="kw1">object</span></a> Parser
<span class="br0">&#123;</span>
  <a href="http://scala-lang.org"><span class="kw1">def</span></a> main<span class="br0">&#40;</span>args<span class="sy0">:</span> Array<span class="br0">&#91;</span>String<span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">=</span>
    <span class="br0">&#123;</span>
      <a href="http://scala-lang.org"><span class="kw1">val</span></a> term <span class="sy0">=</span> parse<span class="br0">&#40;</span><span class="st0">&quot;1+1*((7+5)*5/25+1+1*(((7+5)*5/25+1000+(10*10)+1)*7)+(10*10)+1)*7&quot;</span><span class="br0">&#41;</span>
      println<span class="br0">&#40;</span>term toString<span class="br0">&#41;</span>
      println<span class="br0">&#40;</span>term v<span class="br0">&#41;</span>
    <span class="br0">&#125;</span>
&nbsp;
  <a href="http://scala-lang.org"><span class="kw1">private</span></a> <a href="http://scala-lang.org"><span class="kw1">def</span></a> parse<span class="br0">&#40;</span>s<span class="sy0">:</span> String<span class="br0">&#41;</span><span class="sy0">:</span> Term <span class="sy0">=</span> <span class="br0">&#123;</span>
    parse<span class="br0">&#40;</span>s replace <span class="br0">&#40;</span><span class="st0">&quot; &quot;</span>, <span class="st0">&quot;&quot;</span><span class="br0">&#41;</span>, 0, <a href="http://scala-lang.org"><span class="kw1">null</span></a>, <a href="http://scala-lang.org"><span class="kw1">false</span></a><span class="br0">&#41;</span>
  <span class="br0">&#125;</span>
&nbsp;
  <a href="http://scala-lang.org"><span class="kw1">private</span></a> <a href="http://scala-lang.org"><span class="kw1">def</span></a> parse<span class="br0">&#40;</span>s<span class="sy0">:</span> String, i<span class="sy0">:</span> Int, left<span class="sy0">:</span> Term, onlyNext<span class="sy0">:</span> Boolean<span class="br0">&#41;</span><span class="sy0">:</span> Term <span class="sy0">=</span> <span class="br0">&#123;</span>
    <a href="http://scala-lang.org"><span class="kw1">if</span></a> <span class="br0">&#40;</span>s.<span class="me1">length</span> <span class="sy0">&gt;</span> i<span class="br0">&#41;</span> <span class="br0">&#123;</span>
      <a href="http://scala-lang.org"><span class="kw1">val</span></a> currentChar <span class="sy0">=</span> s charAt i
      currentChar <a href="http://scala-lang.org"><span class="kw1">match</span></a> <span class="br0">&#123;</span>
        <a href="http://scala-lang.org"><span class="kw1">case</span></a> <span class="st0">'+'</span> | <span class="st0">'-'</span> <span class="sy0">=&gt;</span>
          <a href="http://scala-lang.org"><span class="kw1">val</span></a> remaining <span class="sy0">=</span> parse<span class="br0">&#40;</span>s, i + 1, <a href="http://scala-lang.org"><span class="kw1">null</span></a>, <a href="http://scala-lang.org"><span class="kw1">false</span></a><span class="br0">&#41;</span>
          <a href="http://scala-lang.org"><span class="kw1">new</span></a> Combination<span class="br0">&#40;</span>currentChar <a href="http://scala-lang.org"><span class="kw1">match</span></a> <span class="br0">&#123;</span>
            <a href="http://scala-lang.org"><span class="kw1">case</span></a> <span class="st0">'+'</span> <span class="sy0">=&gt;</span> <a href="http://scala-lang.org"><span class="kw1">new</span></a> +<span class="br0">&#40;</span>left, remaining<span class="br0">&#41;</span>
            <a href="http://scala-lang.org"><span class="kw1">case</span></a> <span class="st0">'-'</span> <span class="sy0">=&gt;</span> <a href="http://scala-lang.org"><span class="kw1">new</span></a> -<span class="br0">&#40;</span>left, remaining<span class="br0">&#41;</span>
          <span class="br0">&#125;</span><span class="br0">&#41;</span>
        <a href="http://scala-lang.org"><span class="kw1">case</span></a> <span class="st0">'*'</span> | <span class="st0">'/'</span> <span class="sy0">=&gt;</span>
          <a href="http://scala-lang.org"><span class="kw1">val</span></a> remaining <span class="sy0">=</span> parse<span class="br0">&#40;</span>s, i + 1, <a href="http://scala-lang.org"><span class="kw1">null</span></a>, <a href="http://scala-lang.org"><span class="kw1">true</span></a><span class="br0">&#41;</span>
          <a href="http://scala-lang.org"><span class="kw1">var</span></a> o<span class="sy0">:</span>Operation <span class="sy0">=</span> <a href="http://scala-lang.org"><span class="kw1">null</span></a>
          currentChar <a href="http://scala-lang.org"><span class="kw1">match</span></a> <span class="br0">&#123;</span>
            <a href="http://scala-lang.org"><span class="kw1">case</span></a> <span class="st0">'*'</span> <span class="sy0">=&gt;</span> o <span class="sy0">=</span> <a href="http://scala-lang.org"><span class="kw1">new</span></a> <span class="sy0">*</span><span class="br0">&#40;</span>left, remaining<span class="br0">&#41;</span>
            <a href="http://scala-lang.org"><span class="kw1">case</span></a> <span class="st0">'/'</span> <span class="sy0">=&gt;</span> o <span class="sy0">=</span> <a href="http://scala-lang.org"><span class="kw1">new</span></a> /<span class="br0">&#40;</span>left, remaining<span class="br0">&#41;</span>
          <span class="br0">&#125;</span>
          parse<span class="br0">&#40;</span>s, i + 1 + remaining.<span class="me1">length</span>, <a href="http://scala-lang.org"><span class="kw1">new</span></a> Combination<span class="br0">&#40;</span>o<span class="br0">&#41;</span>, <a href="http://scala-lang.org"><span class="kw1">false</span></a><span class="br0">&#41;</span>
        <a href="http://scala-lang.org"><span class="kw1">case</span></a> c <a href="http://scala-lang.org"><span class="kw1">if</span></a> <span class="br0">&#40;</span>c.<span class="me1">isDigit</span><span class="br0">&#41;</span> <span class="sy0">=&gt;</span>
          <a href="http://scala-lang.org"><span class="kw1">val</span></a> currentConstant <span class="sy0">=</span> parseNextNumber<span class="br0">&#40;</span>i, s<span class="br0">&#41;</span>
          <a href="http://scala-lang.org"><span class="kw1">if</span></a> <span class="br0">&#40;</span>onlyNext<span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <a href="http://scala-lang.org"><span class="kw1">new</span></a> Constant<span class="br0">&#40;</span>currentConstant <span class="sy0">_</span>1<span class="br0">&#41;</span>
          <span class="br0">&#125;</span> <a href="http://scala-lang.org"><span class="kw1">else</span></a> <span class="br0">&#123;</span>
            parse<span class="br0">&#40;</span>s, i + <span class="br0">&#40;</span>currentConstant <span class="sy0">_</span>2<span class="br0">&#41;</span>, <a href="http://scala-lang.org"><span class="kw1">new</span></a> Constant<span class="br0">&#40;</span>currentConstant <span class="sy0">_</span>1<span class="br0">&#41;</span>, <a href="http://scala-lang.org"><span class="kw1">false</span></a><span class="br0">&#41;</span>
          <span class="br0">&#125;</span>
        <a href="http://scala-lang.org"><span class="kw1">case</span></a> <span class="st0">'('</span> <span class="sy0">=&gt;</span>
          <a href="http://scala-lang.org"><span class="kw1">val</span></a> equationPart <span class="sy0">=</span> s.<span class="me1">substring</span><span class="br0">&#40;</span>i + 1, findMatchingBraceIndex<span class="br0">&#40;</span>s, i + 1<span class="br0">&#41;</span> - 1<span class="br0">&#41;</span>
          parse<span class="br0">&#40;</span>s, i + equationPart.<span class="me1">length</span> + 2, <a href="http://scala-lang.org"><span class="kw1">new</span></a> Braced<span class="br0">&#40;</span>parse<span class="br0">&#40;</span>equationPart<span class="br0">&#41;</span><span class="br0">&#41;</span>, <a href="http://scala-lang.org"><span class="kw1">false</span></a><span class="br0">&#41;</span>
        <a href="http://scala-lang.org"><span class="kw1">case</span></a> c <span class="sy0">=&gt;</span>
          assert<span class="br0">&#40;</span><a href="http://scala-lang.org"><span class="kw1">false</span></a>, <span class="st0">&quot;hacking attempt detected&quot;</span> + c<span class="br0">&#41;</span>
          <a href="http://scala-lang.org"><span class="kw1">null</span></a>
      <span class="br0">&#125;</span>
    <span class="br0">&#125;</span> <a href="http://scala-lang.org"><span class="kw1">else</span></a> <span class="br0">&#123;</span>
      left
    <span class="br0">&#125;</span>
  <span class="br0">&#125;</span>
&nbsp;
  <a href="http://scala-lang.org"><span class="kw1">private</span></a> <a href="http://scala-lang.org"><span class="kw1">def</span></a> findMatchingBraceIndex<span class="br0">&#40;</span>s<span class="sy0">:</span> String, start<span class="sy0">:</span> Int<span class="br0">&#41;</span><span class="sy0">:</span> Int <span class="sy0">=</span> <span class="br0">&#123;</span>
    <a href="http://scala-lang.org"><span class="kw1">var</span></a> depth <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
    <a href="http://scala-lang.org"><span class="kw1">var</span></a> index <span class="sy0">=</span> start - <span class="nu0">1</span><span class="sy0">;</span>
    <a href="http://scala-lang.org"><span class="kw1">var</span></a> c <span class="sy0">=</span> s charAt index
    <a href="http://scala-lang.org"><span class="kw1">while</span></a> <span class="br0">&#40;</span>depth <span class="sy0">&gt;</span> 0 || c <span class="sy0">!=</span> <span class="st0">')'</span><span class="br0">&#41;</span>
      <span class="br0">&#123;</span>
        c <span class="sy0">=</span> s charAt index
        index +<span class="sy0">=</span> 1
        <a href="http://scala-lang.org"><span class="kw1">if</span></a> <span class="br0">&#40;</span>c <span class="sy0">==</span> <span class="st0">')'</span><span class="br0">&#41;</span> depth -<span class="sy0">=</span> 1
        <a href="http://scala-lang.org"><span class="kw1">else</span></a> <a href="http://scala-lang.org"><span class="kw1">if</span></a> <span class="br0">&#40;</span>c <span class="sy0">==</span> <span class="st0">'('</span><span class="br0">&#41;</span> depth +<span class="sy0">=</span> 1
      <span class="br0">&#125;</span>
    index
  <span class="br0">&#125;</span>
&nbsp;
  <a href="http://scala-lang.org"><span class="kw1">private</span></a> <a href="http://scala-lang.org"><span class="kw1">def</span></a> parseNextNumber<span class="br0">&#40;</span>start<span class="sy0">:</span> Int, s<span class="sy0">:</span> String<span class="br0">&#41;</span> <span class="sy0">=</span> <span class="br0">&#123;</span>
    <a href="http://scala-lang.org"><span class="kw1">var</span></a> last <span class="sy0">=</span> start<span class="sy0">;</span>
    <a href="http://scala-lang.org"><span class="kw1">while</span></a> <span class="br0">&#40;</span>last <span class="sy0">&lt;</span> s.<span class="me1">length</span> <span class="sy0">&amp;&amp;</span> <span class="br0">&#40;</span>s charAt last isDigit<span class="br0">&#41;</span><span class="br0">&#41;</span> last +<span class="sy0">=</span> 1
    <span class="br0">&#40;</span>BigDecimal<span class="br0">&#40;</span>s substring <span class="br0">&#40;</span>start, last<span class="br0">&#41;</span><span class="br0">&#41;</span>, last - start<span class="br0">&#41;</span>
  <span class="br0">&#125;</span>
&nbsp;
  <a href="http://scala-lang.org"><span class="kw1">abstract</span></a> <a href="http://scala-lang.org"><span class="kw1">class</span></a> Term <span class="br0">&#123;</span>
    <a href="http://scala-lang.org"><span class="kw1">def</span></a> toString<span class="sy0">:</span> String
&nbsp;
    <a href="http://scala-lang.org"><span class="kw1">def</span></a> v<span class="sy0">:</span> BigDecimal
&nbsp;
    <a href="http://scala-lang.org"><span class="kw1">def</span></a> length <span class="sy0">=</span> toString length
  <span class="br0">&#125;</span>
&nbsp;
  <a href="http://scala-lang.org"><span class="kw1">class</span></a> Braced<span class="br0">&#40;</span>t<span class="sy0">:</span> Term<span class="br0">&#41;</span> <a href="http://scala-lang.org"><span class="kw1">extends</span></a> Term <span class="br0">&#123;</span>
    <a href="http://scala-lang.org"><span class="kw1">override</span></a> <a href="http://scala-lang.org"><span class="kw1">def</span></a> toString <span class="sy0">=</span> <span class="st0">'('</span> + t.<span class="me1">toString</span> + <span class="st0">')'</span>
&nbsp;
    <a href="http://scala-lang.org"><span class="kw1">def</span></a> v <span class="sy0">=</span> t.<span class="me1">v</span>
&nbsp;
  <span class="br0">&#125;</span>
&nbsp;
  <a href="http://scala-lang.org"><span class="kw1">class</span></a> Constant<span class="br0">&#40;</span>c<span class="sy0">:</span> BigDecimal<span class="br0">&#41;</span> <a href="http://scala-lang.org"><span class="kw1">extends</span></a> Term
  <span class="br0">&#123;</span>
    <a href="http://scala-lang.org"><span class="kw1">def</span></a> v <span class="sy0">=</span> c
&nbsp;
    <a href="http://scala-lang.org"><span class="kw1">override</span></a> <a href="http://scala-lang.org"><span class="kw1">def</span></a> toString <span class="sy0">=</span> c toString
  <span class="br0">&#125;</span>
&nbsp;
  <a href="http://scala-lang.org"><span class="kw1">class</span></a> Combination<span class="br0">&#40;</span>o<span class="sy0">:</span> Operation<span class="br0">&#41;</span> <a href="http://scala-lang.org"><span class="kw1">extends</span></a> Term <span class="br0">&#123;</span>
    <a href="http://scala-lang.org"><span class="kw1">def</span></a> v <span class="sy0">=</span>
      o <a href="http://scala-lang.org"><span class="kw1">match</span></a> <span class="br0">&#123;</span>
        <a href="http://scala-lang.org"><span class="kw1">case</span></a> +<span class="br0">&#40;</span>t, t2<span class="br0">&#41;</span> <span class="sy0">=&gt;</span> t.<span class="me1">v</span> + t2.<span class="me1">v</span>
        <a href="http://scala-lang.org"><span class="kw1">case</span></a> -<span class="br0">&#40;</span>t, t2<span class="br0">&#41;</span> <span class="sy0">=&gt;</span> t.<span class="me1">v</span> - t2.<span class="me1">v</span>
        <a href="http://scala-lang.org"><span class="kw1">case</span></a> /<span class="br0">&#40;</span>t, t2<span class="br0">&#41;</span> <span class="sy0">=&gt;</span> t.<span class="me1">v</span> / t2.<span class="me1">v</span>
        <a href="http://scala-lang.org"><span class="kw1">case</span></a> <span class="sy0">*</span><span class="br0">&#40;</span>t, t2<span class="br0">&#41;</span> <span class="sy0">=&gt;</span> t.<span class="me1">v</span> <span class="sy0">*</span> t2.<span class="me1">v</span>
      <span class="br0">&#125;</span>
&nbsp;
    <a href="http://scala-lang.org"><span class="kw1">override</span></a> <a href="http://scala-lang.org"><span class="kw1">def</span></a> toString <span class="sy0">=</span> <span class="br0">&#40;</span>o <a href="http://scala-lang.org"><span class="kw1">match</span></a> <span class="br0">&#123;</span>
      <a href="http://scala-lang.org"><span class="kw1">case</span></a> +<span class="br0">&#40;</span>t, t2<span class="br0">&#41;</span> <span class="sy0">=&gt;</span> t.<span class="me1">toString</span> + <span class="st0">&quot;+&quot;</span> + t2.<span class="me1">toString</span>
      <a href="http://scala-lang.org"><span class="kw1">case</span></a> -<span class="br0">&#40;</span>t, t2<span class="br0">&#41;</span> <span class="sy0">=&gt;</span> t.<span class="me1">toString</span> + <span class="st0">&quot;-&quot;</span> + t2.<span class="me1">toString</span>
      <a href="http://scala-lang.org"><span class="kw1">case</span></a> /<span class="br0">&#40;</span>t, t2<span class="br0">&#41;</span> <span class="sy0">=&gt;</span> t.<span class="me1">toString</span> + <span class="st0">&quot;/&quot;</span> + t2.<span class="me1">toString</span>
      <a href="http://scala-lang.org"><span class="kw1">case</span></a> <span class="sy0">*</span><span class="br0">&#40;</span>t, t2<span class="br0">&#41;</span> <span class="sy0">=&gt;</span> t.<span class="me1">toString</span> + <span class="st0">&quot;*&quot;</span> + t2.<span class="me1">toString</span>
    <span class="br0">&#125;</span><span class="br0">&#41;</span>
  <span class="br0">&#125;</span>
&nbsp;
  <a href="http://scala-lang.org"><span class="kw1">abstract</span></a> <a href="http://scala-lang.org"><span class="kw1">class</span></a> Operation
  <a href="http://scala-lang.org"><span class="kw1">case</span></a> <a href="http://scala-lang.org"><span class="kw1">class</span></a> +<span class="br0">&#40;</span>t<span class="sy0">:</span> Term, t2<span class="sy0">:</span> Term<span class="br0">&#41;</span> <a href="http://scala-lang.org"><span class="kw1">extends</span></a> Operation
  <a href="http://scala-lang.org"><span class="kw1">case</span></a> <a href="http://scala-lang.org"><span class="kw1">class</span></a> -<span class="br0">&#40;</span>t<span class="sy0">:</span> Term, t2<span class="sy0">:</span> Term<span class="br0">&#41;</span> <a href="http://scala-lang.org"><span class="kw1">extends</span></a> Operation
  <a href="http://scala-lang.org"><span class="kw1">case</span></a> <a href="http://scala-lang.org"><span class="kw1">class</span></a> <span class="sy0">*</span><span class="br0">&#40;</span>t<span class="sy0">:</span> Term, t2<span class="sy0">:</span> Term<span class="br0">&#41;</span> <a href="http://scala-lang.org"><span class="kw1">extends</span></a> Operation
  <a href="http://scala-lang.org"><span class="kw1">case</span></a> <a href="http://scala-lang.org"><span class="kw1">class</span></a> /<span class="br0">&#40;</span>t<span class="sy0">:</span> Term, t2<span class="sy0">:</span> Term<span class="br0">&#41;</span> <a href="http://scala-lang.org"><span class="kw1">extends</span></a> Operation
<span class="br0">&#125;</span></pre>
<br />
allerdings finde ich doof, dass es die klasse Combination gibt. ich würde da gerne die operation direkt verwenden. kann scala das? ich müsste ja operation von term ableiten und in operation dann ein this match { ableitungen von this } machen.]]></summary>
    </entry>
    <entry>
        <title type="html">&quot;for loop&quot; ab einer gewissen Größe extrem langsam. (11 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,1060,1060#msg-1060" />
        <category term="Scala-Programmierung" />
        <published>2010-02-12T15:01:56+01:00</published>
        <updated>2010-03-06T12:45:25+01:00</updated>
        <id>http://scala-forum.org/read.php?11,1060,1060#msg-1060</id>
        <author>
            <name>erwin</name>
        </author>
        <summary type="html"><![CDATA[ Hallo,<br />
<br />
ich habe folgenden Code:<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div><a href="http://scala-lang.org"><span class="kw1">package</span></a> test
&nbsp;
<a href="http://scala-lang.org"><span class="kw1">object</span></a> Main <a href="http://scala-lang.org"><span class="kw1">extends</span></a> Application <span class="br0">&#123;</span>
&nbsp;
   <a href="http://scala-lang.org"><span class="kw1">var</span></a> x <span class="sy0">=</span> 0 
&nbsp;
   <a href="http://scala-lang.org"><span class="kw1">for</span></a><span class="br0">&#40;</span>i <span class="sy0">&lt;</span>- <span class="nu0">1</span> to <span class="nu0">10000000</span><span class="br0">&#41;</span>
      x +<span class="sy0">=</span> <span class="nu0">1</span>
&nbsp;
   println<span class="br0">&#40;</span>x<span class="br0">&#41;</span>
&nbsp;
<span class="br0">&#125;</span></pre>
<br />
Unter Linux ausgeführt bekomme ich folgendes Ergebnis:<br />
<pre class="bbcode">
$ time scala test.Main
10000000

real	1m31.998s
user	1m32.298s
sys	0m0.248s</pre>
<br />
1m32s ist schon eine extrem lange Zeit.<br />
<br />
Wenn ich die Schleife aber nur bis 100000 laufen lasse (100x weniger) dann dauert dies &quot;nur&quot; 645ms:<br />
<br />
<pre class="bbcode">
$ time scala test.Main
100000

real	0m0.645s
user	0m0.636s
sys	0m0.076s</pre>
<br />
Ich verwende Scala 2.7.7 und Java 1.6.0_17<br />
<br />
Auf dieses Problem bin ich gestoßen, als ich ein Programm zur Ermittlung aller Kombinationen von 4*28 Zahlen *81 in Scala ausgeführt habe.<br />
Was in Java nach 1.694s mit (28^4 * 81 =) 49787136 durchläufen beendet wurde dauerte in Scala mehreren Minuten.<br />
<br />
Obwohl ich Scala als Programmiersprache mit Zukunftspotential sehe, erschrecken mich solche Testergebnisse.<br />
<br />
Vielleicht hat jemand eine Idee, was hier Probleme machen könnte.<br />
<br />
Danke<br />
Erwin]]></summary>
    </entry>
    <entry>
        <title type="html">Umfrage, welche Sprache auf der JVM hat das größte Potenzial? (12 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,960,960#msg-960" />
        <category term="Scala-Programmierung" />
        <published>2010-01-19T14:46:12+01:00</published>
        <updated>2010-02-19T11:19:22+01:00</updated>
        <id>http://scala-forum.org/read.php?11,960,960#msg-960</id>
        <author>
            <name>christian</name>
        </author>
        <summary type="html"><![CDATA[ In der <a href="http://it-republik.de/jaxenter/quickvote/results/1/poll/75" rel="nofollow" >Umfrage des Java-Magazins</a> liegt im Moment Scala deutlich in Führung.]]></summary>
    </entry>
    <entry>
        <title type="html">Scala-Objekt aus Javacode heraus aufrufen (no Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,935,935#msg-935" />
        <category term="Scala-Programmierung" />
        <published>2010-01-14T06:39:24+01:00</published>
        <updated>2010-01-14T06:39:24+01:00</updated>
        <id>http://scala-forum.org/read.php?11,935,935#msg-935</id>
        <author>
            <name>user unknown</name>
        </author>
        <summary type="html"><![CDATA[ Habe meine Frage selbst beantworten können - vielleicht deshalb für jmd. hilfreich:<br />
<br />
Hier habe ich eine enorm elaborierte Javaklasse:<br />
<br />
<pre class="java bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Java</div><span class="kw1">import</span> <span class="co2">kram.ATM</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">public</span> <span class="kw1">class</span> AhTeeM
<span class="br0">&#123;</span>
	<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> main <span class="br0">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a><span class="br0">&#91;</span><span class="br0">&#93;</span> args<span class="br0">&#41;</span> <span class="kw1">throws</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Exception</span></a>
	<span class="br0">&#123;</span>
		ATM.<span class="me1">withdraw</span> <span class="br0">&#40;</span>70, <span class="kw1">new</span> <span class="kw4">int</span> <span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="br0">&#123;</span>30, 40<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre>
kram.ATM ist Scalacode, den ich Eclipse  zu finden beigebracht habe.  Man beachte, daß AhTeeM nicht in einem Package deklariert ist. Das ist doch kein Fehler, oder? <br />
<br />
Hier ist kram.ATM:<br />
<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div><a href="http://scala-lang.org"><span class="kw1">package</span></a> kram
&nbsp;
<a href="http://scala-lang.org"><span class="kw1">object</span></a> ATM <span class="br0">&#123;</span>
&nbsp;
	<a href="http://scala-lang.org"><span class="kw1">def</span></a> split <span class="br0">&#40;</span>wert<span class="sy0">:</span> Int, scheine<span class="sy0">:</span> List<span class="br0">&#91;</span>Int<span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">:</span> <span class="br0">&#40;</span>Boolean, List<span class="br0">&#91;</span>Int<span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">=</span> <span class="br0">&#123;</span>
		<a href="http://scala-lang.org"><span class="kw1">if</span></a> <span class="br0">&#40;</span>wert <span class="sy0">&lt;=</span> 0 || scheine.<span class="me1">isEmpty</span><span class="br0">&#41;</span>
			<span class="br0">&#40;</span><a href="http://scala-lang.org"><span class="kw1">false</span></a>, Nil<span class="br0">&#41;</span> <a href="http://scala-lang.org"><span class="kw1">else</span></a> 	
				<a href="http://scala-lang.org"><span class="kw1">if</span></a> <span class="br0">&#40;</span>wert <span class="sy0">==</span> scheine.<span class="me1">head</span><span class="br0">&#41;</span>
					<span class="br0">&#40;</span><a href="http://scala-lang.org"><span class="kw1">true</span></a>, List <span class="br0">&#40;</span>wert<span class="br0">&#41;</span><span class="br0">&#41;</span> <a href="http://scala-lang.org"><span class="kw1">else</span></a> 	
					<span class="br0">&#123;</span>
						<a href="http://scala-lang.org"><span class="kw1">val</span></a> mit <span class="sy0">=</span> split <span class="br0">&#40;</span>wert - scheine.<span class="me1">head</span>, scheine<span class="br0">&#41;</span>
						<a href="http://scala-lang.org"><span class="kw1">if</span></a> <span class="br0">&#40;</span><span class="sy0">!</span> mit.<span class="sy0">_</span>1<span class="br0">&#41;</span> 
							split <span class="br0">&#40;</span>wert, scheine.<span class="me1">tail</span><span class="br0">&#41;</span> <a href="http://scala-lang.org"><span class="kw1">else</span></a> 	
								<span class="br0">&#40;</span><a href="http://scala-lang.org"><span class="kw1">true</span></a>, scheine.<span class="me1">head</span> <span class="sy0">::</span> mit.<span class="sy0">_</span>2<span class="br0">&#41;</span> 
					<span class="br0">&#125;</span>
	<span class="br0">&#125;</span>
&nbsp;
	<a href="http://scala-lang.org"><span class="kw1">def</span></a> withdraw <span class="br0">&#40;</span>sum<span class="sy0">:</span> Int, scheine<span class="sy0">:</span> Array<span class="br0">&#91;</span>Int<span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">=</span> <span class="br0">&#123;</span>
&nbsp;
	  <a href="http://scala-lang.org"><span class="kw1">val</span></a> xs <span class="sy0">=</span> scheine.<span class="me1">toList</span> 
	  <a href="http://scala-lang.org"><span class="kw1">val</span></a> res <span class="sy0">=</span> split <span class="br0">&#40;</span>sum, xs<span class="br0">&#41;</span>
	  <a href="http://scala-lang.org"><span class="kw1">if</span></a> <span class="br0">&#40;</span><span class="sy0">!</span> res.<span class="sy0">_</span>1<span class="br0">&#41;</span>
		  println <span class="br0">&#40;</span><span class="st0">&quot;Stückeln nicht möglich - Ihr Geld wird als Rechenkosten zur Strafe eingezogen&quot;</span><span class="br0">&#41;</span> <a href="http://scala-lang.org"><span class="kw1">else</span></a>
		  println <span class="br0">&#40;</span>res.<span class="sy0">_</span>2<span class="br0">&#41;</span> 		 
	<span class="br0">&#125;</span>
&nbsp;
	<a href="http://scala-lang.org"><span class="kw1">def</span></a> main <span class="br0">&#40;</span>s<span class="sy0">:</span> Array<span class="br0">&#91;</span>String<span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
		<a href="http://scala-lang.org"><span class="kw1">val</span></a> wert <span class="sy0">=</span> 30
		<a href="http://scala-lang.org"><span class="kw1">val</span></a> stuecke <span class="sy0">=</span> List <span class="br0">&#40;</span>30, 40<span class="br0">&#41;</span>
		<a href="http://scala-lang.org"><span class="kw1">val</span></a> res <span class="sy0">=</span> split <span class="br0">&#40;</span>wert, stuecke<span class="br0">&#41;</span>
		println <span class="br0">&#40;</span><span class="st0">&quot;wert: &quot;</span> + wert + <span class="st0">&quot; Stuecke: &quot;</span> + stuecke + <span class="st0">&quot; resultat: &quot;</span> + res<span class="br0">&#41;</span>
		withdraw <span class="br0">&#40;</span><span class="nu0">100</span>, stuecke.<span class="me1">toArray</span><span class="br0">&#41;</span>
	<span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre>
Inhaltlich ist das ganz unerheblich, aber wen es interessiert: <br />
main ist nur, um das Objekt ohne Java zu testen.<br />
withdraw gibt das Ergebnis aus, damit ich nicht überlegen muß, wie ich die Rückgabe (Boolean: List[Int]) für Java aufbereite. <br />
man kann sagen withdraw (100, (30, 40)), und bekommt (30, 30, 40) zurück, d.h. die Funktion versucht den Betrag zu wechseln, ATM:= amerikanische Geldautomatenbezeichnung. <br />
<br />
Es kompiliert auch ganz schön<br />
<pre class="bbcode">
asux:~/workspace/experiment &gt; l AhTeeM.*
-rw-r--r-- 1 stefan stefan  475 2010-01-14 05:29 AhTeeM.class
-rw-r--r-- 1 stefan stefan 5673 2010-01-14 05:29 AhTeeM.java
asux:~/workspace/experiment &gt; l ../skram/bin/kram/ATM*
-rw-r--r-- 1 stefan stefan  963 2010-01-14 05:18 ../skram/bin/kram/ATM.class
-rw-r--r-- 1 stefan stefan 2999 2010-01-14 05:18 ../skram/bin/kram/ATM$.class
asux:~/workspace/experiment &gt;</pre>
<br />
Das Scalaobjekt kann ich auch aufrufen:<br />
<pre class="bbcode">
scala -cp ../skram/bin kram.ATM 
wert: 30 Stuecke: List(30, 40) resultat: (true,List(30))
List(30, 30, 40)</pre>
Aber versuche ich es mit dem Javacode, so scheitere ich: <br />
<br />
<pre class="bbcode">
java -cp ../skram/bin:. AhTeeM  
Exception in thread &quot;main&quot; java.lang.NoClassDefFoundError: scala/ScalaObject
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:637)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
	at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
	at kram.ATM.withdraw(ATM.scala)
	at AhTeeM.main(AhTeeM.java:136)
Caused by: java.lang.ClassNotFoundException: scala.ScalaObject
	at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
	... 14 more</pre>
Lese ich dann die Fehlermeldung aufmerksam durch, so komme ich selbst drauf, aber dazu muß ich erst so ein Posting für's Forum fertig machen, bei dem ich Schritt für Schritt mein Vorgehen schildere, jeden Schritt nochmal prüfe, und dabei, wie so oft, selbst den Fehler finde:<br />
<br />
Die Scalalibs fehlen im Pfad. <br />
<br />
 <pre class="bbcode">
java -cp ../skram/bin:.:/opt/scala/lib/scala-library.jar AhTeeM  
List(30, 40)</pre>
Kaum macht man's richtig, schon funktioniert's! :)]]></summary>
    </entry>
    <entry>
        <title type="html">Multidimensionaler ArrayBuffer to Array (6 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,927,927#msg-927" />
        <category term="Scala-Programmierung" />
        <published>2010-01-13T09:08:11+01:00</published>
        <updated>2010-01-14T12:20:52+01:00</updated>
        <id>http://scala-forum.org/read.php?11,927,927#msg-927</id>
        <author>
            <name>RhysCraw</name>
        </author>
        <summary type="html"><![CDATA[ Hey ho!<br />
<br />
Ich muss ein Object[][] an eine Java Klasse übergeben, dessen Größe mir aber zuvor noch nicht bekannt ist. Daher nutze ich einen ArrayBuffer. Mit der toArray Methode ist es ja sehr simpel, daraus ein Array zumachen, zumindest, wenn es sich dabei um ein eindimensionales Array handelt. Versuche ich aber:<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div><a href="http://scala-lang.org"><span class="kw1">val</span></a> oa <span class="sy0">=</span> ArrayBuffer<span class="br0">&#91;</span>ArrayBuffer<span class="br0">&#91;</span>Object<span class="br0">&#93;</span><span class="br0">&#93;</span>
oa.<span class="me1">toArray</span></pre>
Kommt dabei ein Array[ArrayBuffer[Object]] heraus, dass dann natürlich nicht mit einem Object[][] kompatibel ist. Nun kann ich das per Hand korregieren, also eigene Schleifen schreiben, aber vielleicht weiß ja jemand eine einfachere Lösung. Danke für eure Hilfe! :-)<br />
<br />
MfG,<br />
RhysCraw]]></summary>
    </entry>
    <entry>
        <title type="html">Bestimmter Trait Voraussetzung für Methoden Parameter (3 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,923,923#msg-923" />
        <category term="Scala-Programmierung" />
        <published>2010-01-12T12:20:04+01:00</published>
        <updated>2010-01-13T09:01:11+01:00</updated>
        <id>http://scala-forum.org/read.php?11,923,923#msg-923</id>
        <author>
            <name>RhysCraw</name>
        </author>
        <summary type="html"><![CDATA[ Hallo alle Zusammen!<br />
<br />
Gibt es eine Möglichkeit bei einem Mehtodenaufruf sicherzustellen, dass  etwas einen bestimmten Trait implementiert?<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div><a href="http://scala-lang.org"><span class="kw1">def</span></a> addTab<span class="br0">&#40;</span>title<span class="sy0">:</span>String, component<span class="sy0">:</span>Component, closeable<span class="sy0">:</span>Boolean <span class="sy0">=</span> <a href="http://scala-lang.org"><span class="kw1">true</span></a><span class="br0">&#41;</span> <span class="br0">&#123;</span>
		require<span class="br0">&#40;</span>component.<span class="me1">isInstanceOf</span><span class="br0">&#91;</span>TabInterface<span class="br0">&#93;</span><span class="br0">&#41;</span>
		<span class="br0">&#91;</span>...<span class="br0">&#93;</span>
<span class="br0">&#125;</span></pre>
So schaut meine bisherige Lösung aus, wobei TabInterface ein Trait ist, aber da so eine Exception geworfen wird, finde ich das nicht so prickelnd. Ich stelle mir sowas vor wie &quot;component:Component extends TabInterface&quot;, was so aber nicht funktioniert. Ich habe leider nichts gefunden, hat jemand eine Lösung?<br />
<br />
MfG,<br />
RhysCraw]]></summary>
    </entry>
    <entry>
        <title type="html">Java vs. Scala - Programmgröße (17 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,892,892#msg-892" />
        <category term="Scala-Programmierung" />
        <published>2010-01-07T15:20:21+01:00</published>
        <updated>2010-01-15T23:51:25+01:00</updated>
        <id>http://scala-forum.org/read.php?11,892,892#msg-892</id>
        <author>
            <name>RhysCraw</name>
        </author>
        <summary type="html"><![CDATA[ Hallo alle zusammen!<br />
<br />
Während meiner Recherche über Scala bin ich eigentlich nur auf positive Meinungen und Vorteile gegenüber Java gestoßen. Nach dem ich eine weile selbst damit rumgespielt habe, muss ich zugeben, Scala macht vieles besser, einfacher und schneller. Doch Nachteile, also richtige Nachteile, wie ich sie empfinden würde, darüber habe ich bisher so gut wie nichts gelesen. Damit meine ich nicht Ausführungsgeschwindigkeiten oder das jemanden das funkionale nicht liegt. Aber vielleicht sehe ich das auch nur als einziger als Nachteil oder mein Eclipse Plugin macht da was nicht richtig. ;-)<br />
<br />
Es geht um die Größe der .class Dateien, also auch um die Größe eines fertigen Programms, und da scheint Scala ja ordentlich zu zu legen gegenüber Java. Ein Beispiel um das zu verdeutlichen:<br />
<br />
Wir haben hier zwei Klassen, die ich so gut wie möglich versucht habe ähnlich zu gestalten. Beides sind singletons. Hier die Java Klasse:<br />
<pre class="java bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Java</div><span class="kw1">public</span> <span class="kw1">class</span> Java <span class="br0">&#123;</span>
&nbsp;
	<span class="kw1">private</span> <span class="kw1">final</span> <span class="kw1">static</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a><span class="br0">&#91;</span><span class="br0">&#93;</span> mouth <span class="sy0">=</span> <span class="kw1">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a><span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="br0">&#123;</span><span class="st0">&quot;ich&quot;</span>, <span class="st0">&quot;bin&quot;</span>, <span class="st0">&quot;klein&quot;</span><span class="br0">&#125;</span><span class="sy0">;</span>
&nbsp;
	<span class="kw1">private</span> Java<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><span class="br0">&#125;</span>
&nbsp;
	<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> say<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
		<span class="kw1">for</span> <span class="br0">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a> s <span class="sy0">:</span> mouth<span class="br0">&#41;</span> <span class="br0">&#123;</span>
			<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Asystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">&#40;</span>s<span class="br0">&#41;</span><span class="sy0">;</span>
		<span class="br0">&#125;</span>
	<span class="br0">&#125;</span>
&nbsp;
<span class="br0">&#125;</span></pre>
Hier die Scala Klasse:<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div><a href="http://scala-lang.org"><span class="kw1">object</span></a> Scala <span class="br0">&#123;</span>
&nbsp;
	<a href="http://scala-lang.org"><span class="kw1">private</span></a> <a href="http://scala-lang.org"><span class="kw1">val</span></a> mouth <span class="sy0">=</span> Array<span class="br0">&#40;</span><span class="st0">&quot;ich&quot;</span>, <span class="st0">&quot;bin&quot;</span>, <span class="st0">&quot;groß&quot;</span><span class="br0">&#41;</span>
&nbsp;
	<a href="http://scala-lang.org"><span class="kw1">def</span></a> say <span class="br0">&#123;</span>
		<a href="http://scala-lang.org"><span class="kw1">for</span></a> <span class="br0">&#40;</span>s <span class="sy0">&lt;</span>- mouth<span class="br0">&#41;</span> <span class="br0">&#123;</span>
			println<span class="br0">&#40;</span>s<span class="br0">&#41;</span>
		<span class="br0">&#125;</span>
	<span class="br0">&#125;</span>
&nbsp;
<span class="br0">&#125;</span></pre>
<br />
Die erzeugten .class Dateien haben folgende Größen:<br />
Java.class - 723 Byte<br />
Scala.class - 534 Byte<br />
Scala$.class - 1.3 KiloByte<br />
Scala$$anonfun$say$1.class - 927 Byte<br />
<br />
Damit wird die Scala.scala (125 Byte) in ca. 2.7 KiloByte compiliert, gegenüber der Java.java (214 Byte) mit 723 Byte. Das ist immerhin ein Größenunterschied um den Faktor 3.8! Und beide Klassen leisten das selbe.<br />
Sehe ich das nur als Nachteil an? Warum muss das so sein? Ok, eher eine rethorische Frage, da es im Buch &quot;Programming in Scala&quot; ja auch erklärt wird, warum da 3 class Dateien rauskommen. Aber auch normale, einfache Klassen, keine Singletons, sind in Scala größer als Java. Das scheint aber niemanden irgendwie zu stören. Dabei finde ich es schon ein Unterschied ob mein Programm 200 KB oder 1,5 MB groß ist. :-/<br />
<br />
Ich bin ja nun ein Freund von &quot;eine Java, eine Class&quot; und umgehe auch anonyme Klasse. Doch wie mache ich das mit Anonymen Funktionen, zumal die ja bei jeder for Konstruktion zum Einsatz kommt? Am Ende möchte ich die keine extra Klasse dafür haben, aber die for Schleifen dennoch nutzen können. Ich bezweifel, dass dies möglich ist, aber vlt ist jemand belesener als ich. :-)]]></summary>
    </entry>
    <entry>
        <title type="html">Bessere Form (5 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,879,879#msg-879" />
        <category term="Scala-Programmierung" />
        <published>2010-01-06T15:40:02+01:00</published>
        <updated>2010-01-14T05:43:54+01:00</updated>
        <id>http://scala-forum.org/read.php?11,879,879#msg-879</id>
        <author>
            <name>RhysCraw</name>
        </author>
        <summary type="html"><![CDATA[ Hallo, alle zusammen!<br />
<br />
Hier scheint ja nicht viel los zu sein. :-) Aber ich versuche es dennoch mal. Ich beschäftige mich gerade mit Scala und komme soweit auch klar. Allerdings habe ich es (noch) nicht so sehr mit der funktionalen Art von Scala (komme von Java). Auch des Verständisses wegen, wie kann ich folgende Methode &quot;Scala&quot;-Effizienter ausdrücken?<br />
<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div><a href="http://scala-lang.org"><span class="kw1">val</span></a> userDB <span class="sy0">=</span> Array<span class="br0">&#91;</span>User<span class="br0">&#93;</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp;
<span class="br0">&#91;</span>...<span class="br0">&#93;</span>
&nbsp;
<a href="http://scala-lang.org"><span class="kw1">def</span></a> get<span class="br0">&#40;</span>name<span class="sy0">:</span>String<span class="br0">&#41;</span><span class="sy0">:</span>User <span class="sy0">=</span> <span class="br0">&#123;</span>
		<a href="http://scala-lang.org"><span class="kw1">var</span></a> u <span class="sy0">=</span> -1
		<a href="http://scala-lang.org"><span class="kw1">for</span></a> <span class="br0">&#40;</span>i <span class="sy0">&lt;</span>- 0 to <span class="br0">&#40;</span>userDB.<span class="me1">length</span> - 1<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
			<a href="http://scala-lang.org"><span class="kw1">if</span></a> <span class="br0">&#40;</span>name <span class="sy0">==</span> userDB<span class="br0">&#40;</span>i<span class="br0">&#41;</span>.<span class="me1">getName</span><span class="br0">&#41;</span>
				u <span class="sy0">=</span> i	 <span class="co1">// Jetzt würde ich ein break machen</span>
		<span class="br0">&#125;</span>
		userDB<span class="br0">&#40;</span>u<span class="br0">&#41;</span>
	<span class="br0">&#125;</span></pre>
<br />
Danke für eure Hilfe.<br />
RhysCraw]]></summary>
    </entry>
    <entry>
        <title type="html">Zugrif auf Elemente eines Tupels (2 Antworten)</title>
        <link href="http://scala-forum.org/read.php?11,819,819#msg-819" />
        <category term="Scala-Programmierung" />
        <published>2009-12-15T14:56:59+01:00</published>
        <updated>2009-12-16T13:43:38+01:00</updated>
        <id>http://scala-forum.org/read.php?11,819,819#msg-819</id>
        <author>
            <name>max5432</name>
        </author>
        <summary type="html"><![CDATA[ Ist es möglich auf einzelne Elemente eines Tupels in einer Schleife zuzugreifen?<br />
<br />
Folgendes Beispiel:<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div><a href="http://scala-lang.org"><span class="kw1">val</span></a> listA <span class="sy0">=</span> List<span class="br0">&#40;</span>1, 2, 3<span class="br0">&#41;</span>
<a href="http://scala-lang.org"><span class="kw1">val</span></a> listB <span class="sy0">=</span> List<span class="br0">&#40;</span>10, 20, 30<span class="br0">&#41;</span>
&nbsp;
<a href="http://scala-lang.org"><span class="kw1">val</span></a> listC <span class="sy0">=</span> listA zip listB</pre>
<br />
Die <b>listC</b> sieht wie folgt aus: <b>((1, 10), (2, 20), (3, 30))</b> <br />
<br />
Meine Ausgabe sollte wie folgt aussehen:<br />
<br />
1            10<br />
2            20<br />
3            30<br />
<br />
Folgende Variante funktioniert:<br />
<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div>listC.<span class="me1">foreach</span><span class="br0">&#40;</span>tupel <span class="sy0">=&gt;</span> println<span class="br0">&#40;</span>tupel.<span class="sy0">_</span>1 + <span class="st0">&quot;<span class="es0">\t</span>&quot;</span> + tupel.<span class="sy0">_</span>2<span class="br0">&#41;</span></pre>
<br />
Folgende Variante, in der auf Teile des Tupels einzeln zugegriffen wird, funktioniert auch: <br />
<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div>listC.<span class="me1">foreach</span><span class="br0">&#40;</span>tupel <span class="sy0">=&gt;</span> <span class="br0">&#123;</span> print<span class="br0">&#40;</span>tupel.<span class="sy0">_</span>1 + <span class="st0">&quot;<span class="es0">\t</span>&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span> println<span class="br0">&#40;</span>tupel.<span class="sy0">_</span>2<span class="br0">&#41;</span><span class="sy0">;</span><span class="br0">&#125;</span><span class="br0">&#41;</span></pre>
<br />
<br />
Nun möchte ich es in einer Schleife versuchen, vobei der Index-Wert (._1 und ._2) mit Hilfe einer Schleifenvariable angegeben wird. Aber, wie kann man den &quot;Index-Wert&quot; angeben?<br />
<br />
Folgenden Varianten wurden geprobt und funktionieren nicht: <br />
<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div>listC.<span class="me1">foreach</span><span class="br0">&#40;</span>tupel <span class="sy0">=&gt;</span> <span class="br0">&#123;</span> <a href="http://scala-lang.org"><span class="kw1">for</span></a> <span class="br0">&#40;</span>i <span class="sy0">&lt;</span>- <span class="nu0">1</span> to <span class="nu0">2</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>print<span class="br0">&#40;</span>tupel.<span class="sy0">_</span>i + <span class="st0">&quot;<span class="es0">\t</span>&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span> println<span class="br0">&#40;</span>tupel.<span class="sy0">_</span>i<span class="br0">&#41;</span><span class="sy0">;</span><span class="br0">&#125;</span><span class="br0">&#125;</span><span class="br0">&#41;</span></pre>
<br />
<br />
<pre class="scala bbcode_geshi" style="font-family:monospace;"><div class="head">Language: Scala</div>listC.<span class="me1">foreach</span><span class="br0">&#40;</span>tupel <span class="sy0">=&gt;</span> <span class="br0">&#123;</span> <a href="http://scala-lang.org"><span class="kw1">for</span></a> <span class="br0">&#40;</span>i <span class="sy0">&lt;</span>- <span class="nu0">1</span> to <span class="nu0">2</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>print<span class="br0">&#40;</span>tupel.<span class="sy0">_</span>`i` + <span class="st0">&quot;<span class="es0">\t</span>&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span> println<span class="br0">&#40;</span>tupel.<span class="sy0">_</span>`i`<span class="br0">&#41;</span><span class="sy0">;</span><span class="br0">&#125;</span><span class="br0">&#125;</span><span class="br0">&#41;</span></pre>
<br />
<br />
Ich weiss, dass Tupel-Elemente unterschiedliche Datentypen enthalten können und deshalb ein Zugriff auf Tupel-Elemente nicht möglich ist, wie dies bei einer Liste möglich ist <i>(list(index)</i>). <br />
<br />
Wie macht man das?]]></summary>
    </entry>
</feed>
