Hello! In the attachment you will find a file, in which I try to access Java from Haskell using the Java bridge for functional languages.
For details see http://sourceforge.net/projects/jvm-bridge/ and http://dapissarenko.com/resources/2005_02_17_eigenvaluesJava/2005_02_17_eigenva luesJava.pdf When I try to compile the attached file using ghc +RTS -c -RTS -package javavm -c EigenvalueCalculatorHaskell.hs -o EigenvalueCalculatorHaskell.o I get the error EigenvalueCalculatorHaskell.hs:28: parse error on input `putStrLn' Unfortunately, I have not the slightest idea about how to fix/isolate it (I already commented out almost the whole code). Please tell me what I could try to correct the error. I appreciate ANY hint. Many thanks in advance Dmitri Pissarenko PS: The source code of the files related to EigenvalueCalculatorHaskell.hs is located at http://dapissarenko.com/resources/2005_02_17_eigenvaluesJava/2005_02_17_lik.zip -- Dmitri Pissarenko Software Engineer http://dapissarenko.com
module EigenvalueCalculatorHaskell where { import Class_MathLibEigenvalueCalculator; import EigenvalueCalculatorHaskell_JVM; import JVMBridge; import IO; calculateEigenvalues :: Array (Int, Int) Double -> [Double] calculateEigenvalues matrix = (do { calculateEigenvalues_JMathLibEigenvalueCalculator_ArrayArrayJdouble matrix } :: JVM ()); -- calculateEigenvalues matrix = (do -- { -- calculateEigenvalues_JMathLibEigenvalueCalculator_ArrayArrayJdouble matrix -- } :: JVM ()); main :: IO (); main = runWithClasspath ["./"](do { let matrix1 = (array ((1,1),(3,3)) [((1,1), 0.0), ((1,2), 0.0), ((1,3),-2.0), ((2,1), 0.0), ((2,2), 7.0), ((2,3), 0.0), ((3,1), 0), ((3,2), 0), ((3,3), -3)]); --let eigenVal = calculateEigenvalues_JMathLibEigenvalueCalculator_ArrayArrayJdouble (matrix1); -- eigenvalues <- (do {calculateEigenvalues_JMathLibEigenvalueCalculator_ArrayArrayJdouble matrix1} :: JVM ()); --eigenvalues <- (calculateEigenvalues_JMathLibEigenvalueCalculator_ArrayArrayJdouble matrix1); -- putStrLn "Eigenvalues of matrix1 (start)"; -- putStrLn (show eigenvalues); putStrLn "Eigenvalues of matrix1 (end)"; -- callIO (putStrLn ("end")); {- let matrix2 = array ((1,1),(3,3)) [((1,1), 1.0), ((1,2), 0.0), ((1,3), 2.0), ((2,1), 0.0), ((2,2), 5.0), ((2,3), 0.0), ((3,1), 3), ((3,2), 0), ((3,3), 2)]; eigenvalues <- calculateEigenvalues matrix2; putStrLn "Eigenvalues of matrix2 (start)"; putStrLn (show eigenvalues); putStrLn "Eigenvalues of matrix2 (end)"; let matrix3 = (array ((1,1),(2,2)) [((1,1), 3.0), ((1,2), 0.0), ((2,1), 4.0), ((2,2), 5.0)]); eigenvalues <- calculateEigenvalues matrix3; putStrLn "Eigenvalues of matrix3 (start)"; putStrLn (show eigenvalues); putStrLn "Eigenvalues of matrix3 (end)"; let matrix4 = (array ((1,1),(2,2)) [((1,1), -1.0), ((1,2), 3.0), ((2,1), -2.0), ((2,2), 4.0)]); eigenvalues <- calculateEigenvalues matrix4; putStrLn "Eigenvalues of matrix4 (start)"; putStrLn (show eigenvalues); putStrLn "Eigenvalues of matrix4 (end)"; let matrix5 = (array ((1,1),(2,2)) [((1,1), 0.0), ((1,2), -2.0), ((2,1), 1.0), ((2,2), -3.0)]); eigenvalues <- calculateEigenvalues matrix5; putStrLn "Eigenvalues of matrix5 (start)"; putStrLn (show eigenvalues); putStrLn "Eigenvalues of matrix5 (end)"; -} } :: JVM ()); }
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe