12
votes

Comment utiliser un laissez-le dans un blocage de WHCI?

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


0 commentaires

4 Réponses :


1
votes

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| :} 


3 commentaires

@ Дмитриймаликов 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 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?



15
votes

Essayez ceci:

let a = do let { b = 5 } ; print b 


0 commentaires

13
votes
<interactive>:50:4: parse error on input ‘let’

0 commentaires

1
votes

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)


0 commentaires