
[code]

    hoge n = [(x,y) | x <- [-n .. n], y <- [-n .. n]]
    
[/code]

この関数をリスト内包表記を使わずに書くなら、どう書けますか？


CC BY-SA 3.0
2017-03-27T15:36:33.890
33587
2017-03-27T20:58:22.213
12896
question
haskell
リスト内包表記を使わずに書くなら


リストをアプリカティブとして使うなら

[code]

    hoge n = (\x y -> (x,y)) <$> [-n .. n] <*> [-n .. n]
    
[/code]

モナドとして使うなら

[code]

    hoge n = do x <- [-n .. n]
                y <- [-n .. n]
                return (x,y)
    
[/code]

と書けます。


CC BY-SA 3.0
2017-03-27T20:58:22.213
33591
2017-03-27T20:58:22.213
3605
33587
answer