Haskell中的map函数有两个输入参数.第一个参数是函数,第二个参数是列表.map函数将作为输入参数传递的函数应用于列表中的所有元素,并返回一个新列表.
C#是否等同于此功能?
试图学习Haskell.我正在尝试编写一个简单的函数来从列表中删除一个数字而不使用内置函数(删除...我认为).为简单起见,我们假设输入参数是一个Integer,列表是一个Integer列表.这是我的代码,请告诉我以下代码有什么问题
areTheySame :: Int -> Int-> [Int]
areTheySame x y | x == y = []
| otherwise = [y]
removeItem :: Int -> [Int] -> [Int]
removeItem x (y:ys) = areTheySame x y : removeItem x ys
Run Code Online (Sandbox Code Playgroud) 以下代码在Haskell中.我如何在C#中编写类似的功能?
squareArea xs = [pi * r^2 | r <- xs]
Run Code Online (Sandbox Code Playgroud)
只是为了澄清......上面的代码是一个函数,它将包含圆的半径的列表作为输入.表达式计算输入列表中每个圆的面积.
我知道在C#中,我可以通过循环遍历列表并计算列表中每个圆的区域并返回包含圆圈区域的列表来实现相同的结果.我的问题是......上面的代码可以在C#中以类似的方式编写,也许使用lambda表达式或LINQ?
如何在Haskell中编写一个函数,它采用格式为a1a2a3的输入字符串并扩展为a1a2a2a3a3a3.例如,输入字符串"code"将扩展为"coodddeeee"
作为学习Haskell的一部分,我正在尝试实现与Lists相关的各种函数的自己版本.现在我被困在init函数上.Haskell中的init函数返回List中除最后一个元素之外的所有元素.
这是我到目前为止所做的.
init' :: [Int] -> [Int]
init' [] = error "This function cannot be applied to an empty list"
init' [x] = [x]
init' (x:xs) = x : init' xs
Run Code Online (Sandbox Code Playgroud)