J'essaie de créer un blocage de manière interactive dans GHCI. Tant que je ne définirai pas une variable avec un bloc, c'est bien:
let a = do let b = 5 putStrLn $ show b
4 Réponses :
J'aurais pensé que mettre des accolades dans ce serait bien, mais cela n'utilise pas:
ghci> :{ ghci| let a = do let b = 5 ghci| putStrLn $ show b ghci| :}
@ Дмитриймаликов Ouais, je ne disais pas que ça a fonctionné! J'ai édité de laisser un commentaire à l'effet que je connaissais la réponse originale ne fonctionnait pas, alors que je changeais la réponse à quelque chose qui fait i> travaille! Aurait dû essayer de l'exécuter dans GHCI avant de poster la réponse :)
Vous n'avez pas mis assez d'accolades.
@Augustss Qu'est-ce que c'est, Java?
Essayez ceci:
let a = do let { b = 5 } ; print b
<interactive>:50:4: parse error on input âletâ
J'ai atterri ici parce que j'avais la même question, mais la réponse de Yatitima2975 m'a rappelé comment chaque blocage peut avoir plusieurs liaisons, alors j'ai essayé le ci-dessous et cela fonctionne.
$ ghci GHCi, version 8.8.3: https://www.haskell.org/ghc/ :? for help Prelude> do { let { x = 1; y = 2 }; putStrLn (show (x, y)) } (1,2)