2014-01-09 39 views
0

高階函數映射定義:用模式匹配或功能的組合物實施revmap功能

map :: (a -> b) -> [a] -> [b] 
map f [] = [] 
map f (x:xs) = f x:map f xs 

然後如何編寫與圖形匹配用revmap功能/功能使用組合物?

+0

你正在做的模式匹配在上面的例子。 – Sibi

+1

「revmap」是什麼意思?只需按照列表的相反順序「映射」?如果這是你的意圖,你可以做'映射f。反向' – bheklilr

+0

OP,bheklilr給了你一個答案 - 但你真的必須告訴我們'revmap'的含義。 :-) –

回答

1

假設你想要的東西像OCaml中的rev_map功能:

revmap :: (a -> b) -> [a] -> [b] 
revmap f xs = go xs [] 
    where 
    go [] acc  = acc 
    go (x:xs) acc = go xs (f x : acc)