[Haskell-cafe] How is this variable not in scope?

Jeffrey Brown jeffbrown.the at gmail.com
Fri Jul 21 08:03:44 UTC 2017


Excellent! Thanks, Alejandro!

On Fri, Jul 21, 2017 at 12:52 AM, Alejandro Serrano Mena <trupill at gmail.com>
wrote:

> The problem is that in the "where" clause the only things which are in
> scope are (roughly) the arguments of the function. In particular, neither
> "root" nor "inputFile" nor "input" nor "pairs". The solution is to add an
> extra argument:
>
> main' = do
>   ...
>   mapM_ (f root) pairs where
>     f root (name, content) = writeFile (root ++ name) content
>
> 2017-07-21 9:28 GMT+02:00 Jeffrey Brown <jeffbrown.the at gmail.com>:
>
>> The following compiles and runs perfectly:
>>
>> main = do
>>   (inputFile:_)  <- getArgs
>>   input <- readFile inputFile
>>   let pairs = pairFilesToContents $ readSmsnLines input
>>   mapM_ f pairs where
>>     f :: (FilePath, String) -> IO ()
>>     f (name, content) = writeFile name content
>>
>> But the following triggers the error "Not in scope: ‘root’".
>>
>> main' = do
>>   (root : inputFile :_)  <- getArgs
>>   input <- readFile inputFile
>>   let pairs = pairFilesToContents $ readSmsnLines input
>>   mapM_ f pairs where
>>     f :: (FilePath, String) -> IO ()
>>     f (name, content) = writeFile (root+name) content
>>
>> --
>> Jeff Brown | Jeffrey Benjamin Brown
>> Website <https://msu.edu/~brown202/>   |   Facebook
>> <https://www.facebook.com/mejeff.younotjeff>   |   LinkedIn
>> <https://www.linkedin.com/in/jeffreybenjaminbrown>(spammy, so I often
>> miss messages here)   |   Github
>> <https://github.com/jeffreybenjaminbrown>
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> To (un)subscribe, modify options or view archives go to:
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>> Only members subscribed via the mailman list are allowed to post.
>>
>
>


-- 
Jeff Brown | Jeffrey Benjamin Brown
Website <https://msu.edu/~brown202/>   |   Facebook
<https://www.facebook.com/mejeff.younotjeff>   |   LinkedIn
<https://www.linkedin.com/in/jeffreybenjaminbrown>(spammy, so I often miss
messages here)   |   Github <https://github.com/jeffreybenjaminbrown>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20170721/1c4d10f8/attachment.html>


More information about the Haskell-Cafe mailing list