[英]Apply a function to every element in a list to every element in another list - Haskell
[英]how to apply function to every element in a list in Haskell?
我想將resolve_on應用於列表c1中的每個元素,例如
for(Char c:c1){
resolve_on c c1 c2;}
那么我該如何使用map函數呢?
resolvents :: [Char] -> [Char] -> [[Char]]
resolvents c1 c2 = map (//what should I do) c1
resolve_on :: Char -> [Char] -> [Char] -> [Char]
resolve_on c c1 c2
如有疑問,請從列表理解開始:
-- for (Char c) in c1: do { c <- c1
-- yield (resolve_on c c1 c2) ; return (resolve_on c c1 c2) }
resolvents c1 c2 = [ resolve_on c c1 c2 | c <- c1 ]
-- read it: a list of
-- (resolve_on c c1 c2)
-- for -- or: for every
-- c
-- in c1
這確實是一張map
,
= map (\c -> resolve_on c c1 c2) c1
這使用lambda (即,未命名) 函數 ,接收一個名為c
參數。
注釋中的do
代碼也將起作用。 它以do
表示,等效於列表理解。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.