-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
> linkedListToHaskellStringList :: LinkedList -> IO [String] > linkedListToHaskellStringList listPtr = > let convertList' ptr = convertList' :: LinkedList -> [IO String], I infer? > if listIsNull ptr > then > [] > else are you doing IO here or not? You need a 'do' if you are (else this is a syntax error), but IO /= [], so what is the function returning? > let str = peekCString =<< (linked_list_getdata ptr) > next <- linked_list_next ptr > str : (convertList' next) > in > sequence $ convertList' listPtr > > listIsNull :: LinkedList -> Bool > listIsNull (LinkedList ptr) = ptr == nullPtr I'd recommend recursion without the 'sequence', I think, so you can do IO along the way - traversing the LinkedList - and then 'return' the list made from (:). (and throw in unsafeInterleaveIO if you're feeling sadistical and want parts of the traversal to be performed at unspecified later dates) Isaac -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGTNvrHgcxvIWYTTURAr9NAKDEwWAtae3OfVf8I/Aqgwnuq4g9LgCgvu0F FTB0hdr7tYaf/6PElVNY+6Y= =EtHd -----END PGP SIGNATURE----- _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
