私は非常に簡単な質問があります。私はバインド演算子を使用するコードのブロックの後にwhere句を使用したいと思いますが、コンパイルエラーが発生します。ここでHaskell:バインド演算子(>> =)を持つブロックの後にwhere句を使用できますか?
は簡単な例です:
main =
putStrLn "where clause test:" >>
return [1..10] >>= \list ->
print list'
where list' = reverse list -- test1.hs:5:28: Not in scope: `list'
私は
main =
putStrLn "where clause test:" >>
return [1..10] >>= \list ->
let list' = reverse list -- works of course
in print list'
のように」リストについては、let節を使用することができますが、私は、where句を使用することができれば、私は本当にそれをしたいと思います。 ..私はまたしてみました
は表記
main = do
putStrLn "where clause test:"
list <- return [1..10]
print list'
where list' = reverse list --test3.hs:5:30: Not in scope: `list'
行います
同じ問題があります。このような状況でwhere句を使用できますか?
ありがとう、あなたの例では、より多くの括弧を使って私のためにそれをクリアします。 –