今度は、Haskellの講義でMonadsとの関係で "フラットマップ"と言われたとき、それは理由のため「フラット」と呼ばれていました。 。だから、fmapとHaskellの "flat map"
[[1,2],[3,4]]
は、それが
[1,2,3,4]
であるかのように処理されるだろう。しかし、今、私はFMAPとマップは基本的に同じものであることを発見し、ファンクタのための1つのアプリケーションと他の唯一の違いちょうどリストのために。そして、それは結局、マップを使用するときにエラーメッセージを混乱させないようにするためだけに行われました。
本当ですか?もしそうならば、なぜfmapのf
は "フラット"を意味するのですか?なぜ、 "ファンクタマップ"ではないのですか?
'fmap'の' f'は 'flat'を意味するものではありません。 Haskellの 'flatMap'に相当するのは'(>> =) 'です。リストの 'map'関数が最初に定義されたので、より一般的な' fmap'関数のために別の名前が必要でした。 – Lee
'fmap'は、リストファンクタ以外の他のファンクタへの' map'の一般化です。 'fmap'が' flat map'の略であるとあなたが言った人は間違っていました。 – chepner
"フラットマップ"と言ったときに、あなたが指摘している講義は 'fmap'を参照していたと確信していますか? 'concatMap'(別名' >> = ')を参照していたのであれば、他の言語では' flatMap'とよく呼ばれ、期待通りに動作していれば意味があります。 – sepp2k