2016-12-16 103 views
1

我最近碰到以下問題:給定一個數字列表,我想從這個列表的每個條目中減去一個常量。自然的,但錯誤的做法是優雅的方式減去每個列表元素的數字

map (-3) [5,6,7] 

這裏-沒有解釋的二元函數,但作爲一個一元負運算。

我發現以下解決方法:

map (+(-3)) [5,6,7] 
map ((+)(-3)) [5,6,7] 
map (flip (-) 3) [5,6,7] 

問:有沒有做到這一點更優雅方式,避免了括號的這種不必要的堆?

回答

1

不,對不起。你有subtract函數,但它不會更短。

Prelude> map (subtract 3) [3,4,5] 
[0,1,2] 
+0

我不知爲什麼,你聞到神奇的感覺,我是從PPCG來:d – flawr

+0

@flawr可能已經見過你的PPCG :) –

相關問題