简体   繁体   English

如何将函数应用于Haskell列表中的每个元素?

[英]how to apply function to every element in a list in Haskell?

I want to apply resolve_on to every element in list c1, like 我想将resolve_on应用于列表c1中的每个元素,例如

for(Char c:c1){
resolve_on c c1 c2;}

So how can I do this using map function? 那么我该如何使用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

When in doubt, start with list comprehensions: 如有疑问,请从列表理解开始:

-- 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

This is indeed a map , 这确实是一张map

                 = map (\c -> resolve_on c c1 c2) c1

This uses a lambda (ie, unnamed) function , receiving one argument named c . 这使用lambda (即,未命名) 函数 ,接收一个名为c参数。

The do code in the comments would also work. 注释中的do代码也将起作用。 It is in do notation, and is equivalent to the list comprehension. 它以do表示,等效于列表理解。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 将函数应用于列表中的每个元素到另一个列表中的每个元素-Haskell - Apply a function to every element in a list to every element in another list - Haskell 如何将 mod 应用于 Haskell 列表中的每个元素 - How to apply mod to every element in a list in Haskell 如何在Haskell的列表中的每个元素上应用函数? - How to apply a function on each element in a list in Haskell? 将两个输入的函数应用于列表中的每个元素 - Haskell - Apply a function of two inputs to every element in a list - Haskell 将 Function 应用于列表中的每个元素 - Apply a Function to every element in a list 将每个函数应用于列表Haskell的每个元素 - Apply each function to each element of a list Haskell 在Haskell中是否可以将putStrLn函数应用于字符串列表的每个元素,使其打印到屏幕上,而无需递归 - Is it possible in Haskell to apply the function putStrLn to every element of a list of Strings, have it print to the screen, while being non recursive 在Haskell中,最常见的将函数应用于列表的第N个元素的方法是什么? - In Haskell, what is the most common way to apply a function to every Nth element of a list? Haskell函数用于交换列表中的每个第二个元素 - Haskell function to swap every second element in a list 将函数应用于列表中的每个元素到另一个列表中的每个元素 - Apply a function to every element in a list to every element in another list
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM