Haskell で多くの一時変数を作成します。
main = do
let nums'' = [1..10]
let nums' = a . bunch . of_ . functions $ nums''
let nums = another . bunch . of_ . functions $ nums'
print nums
つまり、次のような関数の長いチェーンを書きたくありません。
let nums = another . bunch . of_ . functions . a . bunch . of_ . functions $ [1..10]
私には読めなくなってしまうので、機能に応じて機能をグループ化しようとしています。nums''
その過程で、 andのような醜い一時変数を大量に作成することにnums'
なります (もっと意味のある名前を付けることができますが、要点は変わりません...すべての新しい行は新しい変数を意味します)。これは、シャドウされた変数がよりクリーンなコードになる場合です。私は次のようなことをしたいと思います:
let nums = [1..10]
nums = a . bunch . of_ . functions $ nums
nums = another . bunch . of_ . functions $ nums
つまり、上記とまったく同じですが、一時変数はありません。Haskellでこれを行う方法はありますか? たぶん、すべてを「トランザクション」にラップすることができます。
atomically $ do
(...this code...)
return nums
このセクションのコードにシャドウ変数が含まれていることを Haskell に知らせるものであり、最終結果のみを気にする必要があります。これは可能ですか?