2016-09-15 32 views
0

編集:さて、私は何もこれで間違っているではありませんが、私は、なぜそれが出力に与えていないかわからない知っているなぜこのGHCi式に出力がないのですか?

let y = 2 * x where x = sum[1..3] 

この他の式は、出力を与えるないので、私は、不思議

let x = sum[1..3] in 2 * x 
+0

いいえ。私は私の質問を編集して、私が尋ねようとしていたことをより詳細に反映させました。私は出力12を与えている1つのletを持っていますが、他のletは出力を与えていません – TurboCrackers

+3

ああ。それで、「let ... in ...」は式です。しかし、 'let ...'は 'do'ブロックでも起こります。 GHCiの動作を次のように考えることをお勧めします。生の表現のように見えるものを入力すると、それを評価して結果を出力します。一方、入力した内容が 'IO'' do'ブロックに属するように見える場合、単にそのアクションを実行します。 – Alec

+0

ああありがとう!それは意味のトンを作る! – TurboCrackers

答えて

2

ああ。だから... ...は式です。ただし、letブロックはdoブロックでも実行できます。 GHCiの動作を次のように考えることをお勧めします。生の表現のように見えるものを入力すると、それを評価して結果を出力します。一方、入力した内容がIO doブロックに属するように見える場合、そのアクションを実行するだけです。 - @Alec

関連する問題