我在尋找函數,應用函子...我不知道如何到達我想要的位置,但我有這樣的感覺,應該讓我更接近。我可以繪製一對沒有箭頭的第一個元素嗎?
有一個簡單的方法,使map
-alike只適用於2元組的第一個元素?從Control.Arrow
以first
和使用Arrow (->)
,該做的伎倆很好:
map . first :: (b -> c) -> [(b, d)] -> [(c, d)]
我唯一擔心的是,我還沒有獲得對箭真正的直覺,所以我可能會發現自己在深水早晚以後如果我保持這種狀態。另外,這似乎是一個相當方便的情況,不能一概而論。
我可以通過使用函子,單子什麼的獲得相同的功能其他任何,同時獲得到我想要的心臟?我正在玩弄
\f -> map (f `on` fst)
-like想法,但不能完全達到那裏。
如果使用的是抽象的,你不明白讓你感到不舒服,使用抽象版本較低的地圖(\(a,b) - >(fa,b))'完全沒有任何問題。 –
感謝您的所有建議!這真的很有啓發。已經接受了您最高票數的答案。 – Ashe
檢查http://stackoverflow.com/questions/413930如果你覺得不舒服'地圖。 first'。 – sdcvvc