```

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

この関数をリスト内包表記を使わずに書くなら、どう書けますか？
CC BY-SA 3.0
2017-03-27T15:36:33.890
33587
2017-03-27T20:58:22.213
12896
question
haskell
リスト内包表記を使わずに書くなら
リストをアプリカティブとして使うなら

```

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

モナドとして使うなら

```

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

と書けます。
CC BY-SA 3.0
2017-03-27T20:58:22.213
33591
2017-03-27T20:58:22.213
3605
33587
answer