![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
Haskellのsubtractについて
最近Haskellを自習し始めました。以下の関数の意味が分かりません。
map (`subtract` 5) [1..5]の結果、[4,3,2,1,0]
map (5 `subtract`) [1..5]の結果、[-4,-3,-2,-1,0]
ここは、前置と中置の違いがあるので理解できます。
map (subtract 5) [1..5]の結果が[-4,-3,-2,-1,0]になる訳と
map ((-) 5) [1..5]の結果が[4,3,2,1,0]になる訳が分かりません。
どなたか、分かりやすく教えてください。
No.1ベストアンサー
- 回答日時:
分かりやすくも何もなくって
subtractはそういう定義になっているというだけです.
英語の語順です.つまり
subtract a from b なので,
subtract a b = b - a です.
Haskellらしく書けば
subtract = flip (-)
flip f x y = f y x
だから,
map (`subtract` 5) [1..5]は
[subtract 1 5, sutract 2 5, subtract 3 5, subtract 4 5,subtract 5 5]
=
[5-1,5-2,5-3,5-4,5-5]
=[4,3,2,1,0]
map (5 `subtract`) [1..5]
についても同様.
map ((-) 5) [1..5] = [4.3.2.1,0]
map (\x->5-x) [1..5] = [4,3,2,1,0]
map (\x->x-5) [1..5] = [-4,-3,-2,-1,0]
のようにするほうが少なくとも日本人にとっては
見やすいでしょう.
これくらいなら,無名関数を使うほうが見やすいと思うけど
何度も使うなら関数定義したほうがいいですね
向井淳さんの「入門Haskell」とWebで勉強を始めましたが、手続き型ばかり
やってきたので、なかなか理解できないことが多いのです。
map (5 -) [1..5]なんて書き方もできるし、kabaokabaさんのように、すっと
無名関数とかを使えるように努力します。
早速の回答ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonのmap、結果の利用は1度だけ? 5 2022/06/11 12:33
- iPhone(アイフォーン) Google map のルート保存について 1 2022/05/13 11:50
- Google Maps google map経路検索で、進行方向とmapの向きを一致させたい 3 2022/04/10 14:20
- 英語 日本人で、英語がネイティブ並みに理解できたり、話せる方に質問です。 英語を聞いて理解するまでに、一度 4 2022/11/16 00:30
- 英語 We have Lee but you don't have 2 2023/03/13 03:35
- 英語 提示した結果構文が非文となる理由について 1 2022/07/25 12:22
- 英語 doがあるのとないのでどう違う? 34 2022/10/05 23:29
- Android(アンドロイド) スマホでGoogle Mapを快適に使うためのセンサー 1 2022/04/12 11:19
- Google Maps オフラインでもGPS使えるとネットに書いてありましたが、 圏外の状態で、Google Mapで位置情 3 2022/04/20 17:52
- X(旧Twitter) Twitterで相手にメッセージを送った際、例えば千葉県と書いたところがリンクありになりました。クリ 1 2023/02/18 06:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python3について。
-
文系のSE志望です。プログラミ...
-
python3について。
-
vba クリップボードクリアにつ...
-
chatGPTで次々と質問をしていく...
-
Google ColaboでGUI作成
-
このプログラミング言語のfor分...
-
プログラミングサイトについて。
-
プログラミングのPythonのnoteb...
-
【プログラミングScratch】で音...
-
Pythonのコードエラーについて...
-
プログラム言語について。
-
Webサイト内に埋め込んだmp4動...
-
IT業界より楽に稼げる業界って...
-
楽しくて最高のプログラミング...
-
小学1年生の子です。塾に行かせ...
-
Python - Excel で Webからデー...
-
入力された文字列が、LD22000を...
-
VBA 電話番号の正規表現について
-
プログラミング ソースコード
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマ区切りのデータを配列に...
-
二つのbxsliderをレスポンシブ...
-
たくさんの経由地がある巡回ル...
-
迷路探索プログラムを作るには...
-
C言語の 配列の中 出力について
-
google maps api v3のルート検索
-
Google Maps:同マップ内でそれ...
-
Googleストリートビューの写真...
-
webサービス上のkmlをgooglemap...
-
Googleマップのウィンドウの表示
-
Haskellのsubtractについて
-
google maps 吹き出しカウント...
-
数字をピクチャボックスの上に...
-
GoogleMapの移動量
-
GoogleMapでアイコンを500件表...
-
googleマップが表示されない。
-
グーグルマップにマーカーを色...
-
ドラッグ & ドロップでのド...
-
JavascriptからPHPへのAjax通信...
-
階層別の組織図の自動作成について
おすすめ情報