Sunt variabilele din do-notatie variabile globale ?
Sunt variabilele din do-notatie variabile globale ?[edit]
Raspunsul este: Nu. Sunt niste denumiri care se leaga cu niste valori, ca toate variabilele din Haskell. Si nu sunt globale. Sunt mai curand locale secventelor do { ...} care le contin. Scrieti de exemplu programul:
main :: IO ()
main = do { x <- return '1' ;
putChar x;
do { x <- return '2' ;
putChar x;
return ();
} ;
putChar x;
return ()
}
Salvati fiserul sub un nume ca : test.hs
Si rulati cu ghci sau cu Hugs:
hugs test.hs
{--
dan@device:~$ hugs test.hs
__ __ __ __ ____ ___ _________________________________________
|| || || || || || ||__ Hugs 98: Based on the Haskell 98 standard
||___|| ||__|| ||__|| __|| Copyright (c) 1994-2005
||---|| ___|| World Wide Web: http://haskell.org/hugs
|| || Bugs: http://hackage.haskell.org/trac/hugs
|| || Version: September 2006 _________________________________________
Haskell 98 mode: Restart with command line option -98 to enable extensions
Type :? for help
Main> main
121
--}
De altfel Haskell, limbaj functional pur, nu are variabile globale. E vorba de acele variabile care modificandu-se ca urmare a unor instructiuni gresite dau atatea probleme la depanare.