编写->;的最佳方法-&燃气轮机;[a] haskell中的递归函数
所以我一直有这样的小问题编写->;的最佳方法-&燃气轮机;[a] haskell中的递归函数,haskell,recursion,Haskell,Recursion,所以我一直有这样的小问题 func :: a -> b -> [a] -- # or basically any a-> ...-> [a] where ... is any types -> func x y = func' [x] y -- '# as long as they are used to generate a list of [a] from x func' :: [a] -> b -> [a] func' = undefine
func :: a -> b -> [a] -- # or basically any a-> ...-> [a] where ... is any types ->
func x y = func' [x] y -- '# as long as they are used to generate a list of [a] from x
func' :: [a] -> b -> [a]
func' = undefined -- # situation dependant generates a list from
-- # each element and returns it as one long list
我应该这样保存吗
我应该使用func'隐藏在何处
我是否应该只使用[a]->b->[a]版本,并将[variable]传递给被调用方的责任留给被调用方
我可能需要编写这些函数,并且可能想搞乱顺序,所以我倾向于选项3。你觉得怎么样?看起来你在试图重新设计concatMap:
concatMap :: (a -> [b]) -> [a] -> [b]
concatMap f = concat . map f
所以“map”位接受输入列表中的每个元素,并将“f”应用于它。“f”接受单个“a”并返回一个“[b]”。然后将这些单独的列表连接成一个列表。看起来您正试图重新创建concatMap:
concatMap :: (a -> [b]) -> [a] -> [b]
concatMap f = concat . map f
所以“map”位接受输入列表中的每个元素,并将“f”应用于它。“f”接受单个“a”并返回一个“[b]”。然后将这些单独的列表连接成一个列表。作为,func'
可以替换为concatMap
和func
而func
本身让我想起了unfover
:
它用于从b
生成a
的列表
顺便说一下,func
和func'
是这类函数的不幸名称。例如,func'
可以替换为concatMap
和func
而func
本身让我想起了unfover
:
它用于从b
生成a
的列表
顺便说一句,
func
和func'
是这类函数的不幸名称。出于好奇,你能给出一个实际的例子说明在哪里需要它吗?func'
让我想起了(>=)
和(>)
func x=func'[x]
或func=func'。return
是关于函数的变长参数的问题吗?出于好奇,你能给出一个实际的例子说明在哪里需要它吗?func'
让我想起了(>=)
和(>>)
func x=func'[x]
或func=func'。return
您对函数的变长参数有何疑问?