簡體   English   中英

用沒有括號的$重寫`map(fgh)x`?

[英]Rewrite `map (f.g.h) x` with $ without parentheses?

我想檢查一下我們是否無法用沒有括號的$重寫map (fgh) x

這是我的審判:

map (f.g.h) x
-> map (f.g.h) $ x  -- OK, no benefit
-> map $ f.g.h $ x  -- wrong as map doesn't take one parameter
-> (map $ f.g.h) x  -- Ok, no benefit, ugly :-)

我發現的唯一優雅的選擇是使用

negate . sum . tail <$> [[1..5], [3..6]]]

但我想確保我沒有跳過上面的一些選項。 謝謝

怎么樣?

let u = f.g.h in map u x

沒有括號,沒有$

如果定義功能

map (f.g.h) x

因此,您可以使用f . g . h處理x 每個元素f . g . h f . g . h f . g . h ,這意味着我們首先對其應用h ,然后對結果應用g ,最后對該結果應用f

但是我們也可以使用三個單獨的map ,例如:

map f $ map g $ map h x

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM