Haskell编写一个函数来执行列表上的输入函数
因此,我试图编写一个函数,在输入列表Haskell编写一个函数来执行列表上的输入函数,haskell,Haskell,因此,我试图编写一个函数,在输入列表ls[l1,l2,…,ln]上执行一个输入函数f,并输出一个字符串“[”++(f l1)++”,“++(f l2)++”,“++…++(f ln+””。 例如: >flist show [1, 2, 3] 将输出“[1,2,3]” 将输出“[狗]” 我试着用foldl' flist f ls = "[" ++ (foldl' (++) f "," ls) ++ "]" 这似乎不起作用提示: 首先生成[f x1,…,f xn],对每个成员应用f 然后
ls
[l1,l2,…,ln]
上执行一个输入函数f
,并输出一个字符串“[”++(f l1)++”,“++(f l2)++”,“++…++(f ln+””。
例如:
>flist show [1, 2, 3]
将输出“[1,2,3]”
将输出“[狗]”
我试着用foldl'
flist f ls = "[" ++ (foldl' (++) f "," ls) ++ "]"
这似乎不起作用提示:
[f x1,…,f xn]
,对每个成员应用f
[y1,…,yn]
和w
,并生成一个交错[y1,w,y2,w,…,yn]
。这可以通过递归实现。(还有一个库函数用于此,但这并不重要。)[f x1,,,,…]
,然后连接结果import Data.List
flist f list = "[" ++ (intercalate "," $ map f list) ++ "]"
插入
将字符串放在其他字符串之间,它是(在本例中)
flist f ls = "[" ++ (foldl' (++) f "," ls) ++ "]"
import Data.List
flist f list = "[" ++ (intercalate "," $ map f list) ++ "]"