[Haskell-cafe] using an external application
Andrew Butterfield
Andrew.Butterfield at cs.tcd.ie
Fri Nov 2 07:19:38 EDT 2007
> On 11/2/07, Petr Hoffmann <spy.hunter at email.cz> wrote:
>
>> import System.Cmd
>> main = do
>> System.Cmd.system "echo hello >output.txt" -- use the external
>> application to create an output file
>> o1 <- readFile "output.txt"
>> System.Cmd.system "echo bye >output.txt" -- the second call to
>> the external application
>> o2 <- readFile "output.txt"
>> putStr o1 -- "hello" expected, but "bye" printed
>> return 0
>>
>> Can you please give me some hint to solve this problem?
>> I'm a beginning haskell developer and I'm still a bit confused
>> by the IO monad.
>>
>
>
I'm puzzled - when I run this on GHCi (v6.4, Windows XP) I get the
following outcome
*Main>main
The process cannot access the file because it is being used by another
process.
hello
*Main>
This is certainly the behaviour I would expect - seeing "bye" being
printed seems to me to be an error
and may even constitute a violation of referential transparency.
What implementation of GHC are you using ?
> This looks like yet another case of the lazy-I/O goblins.
>
Yes, but not quite what everyone has being addressing....
--
--------------------------------------------------------------------
Andrew Butterfield Tel: +353-1-896-2517 Fax: +353-1-677-2204
Foundations and Methods Research Group Director.
Course Director, B.A. (Mod.) in CS and ICT degrees, Year 4.
Department of Computer Science, Room F.13, O'Reilly Institute,
Trinity College, University of Dublin, Ireland.
http://www.cs.tcd.ie/Andrew.Butterfield/
--------------------------------------------------------------------
More information about the Haskell-Cafe
mailing list