小编bla*_*ley的帖子

使用map用(xy)*(xy)替换列表的元素,其中y是初始元素

我有一些功课要做,我是Haskell的全新手.我遇到问题的问题是编写一个函数,当给定一个整数x和整数列表时,该函数应用于列表中的(x-y)*(x-y)每个元素并输出新列表,y作为输入列表的每个元素.

我有一个非常粗略的想法,我将不得不使用该map功能,但我不确定如何去做.

我一直在寻找的例子在列表中每平方元素和一种理解是如何工作的,但我将如何实现(x-y)*(x-y)y为当前元素完全令我感到困惑.

squares :: [Int] -> [Int]
squares (x:xs) = x * x : squares xs
squares [] = []
Run Code Online (Sandbox Code Playgroud)

我设定的确切问题是,

编写一个函数rela,它将整数x和整数列表作为参数.它返回一个类似的列表,但是每个元素y都被替换为(x-y)*(x-y),例如

Main> rela 2 [3,5,7]
[1,9,25]
Run Code Online (Sandbox Code Playgroud)

在阅读了一些书之后,我已经设法让它工作了,但是我制作的代码错过了列表中的第一个元素.任何解释为什么?

equation1 :: Int -> Int -> Int
equation1 x y = (x-y)*(x-y)
rela :: Int -> [Int] -> [Int]
rela x [] =[]
rela x (y:ys) = [ equation1 x y …
Run Code Online (Sandbox Code Playgroud)

dictionary haskell list

7
推荐指数
2
解决办法
1万
查看次数

Haskell在列表中列出

我有一个功课问题,我必须定义一个函数,它以带有较小整数列表的列表形式输入,并对每个最内层列表中的数字求和,然后将得到的和相乘.

我的代码如下,显然不起作用,任何帮助将不胜感激:)

sumI :: [Int] -> Int
sumI [] = 0
sumI (x:xs) = x + sumI xs

mapQ :: [[Int]] -> Int
mapQ [] = []
mapQ xs = [product (sumI x) | x <- xs]
Run Code Online (Sandbox Code Playgroud)

haskell list

1
推荐指数
1
解决办法
985
查看次数

标签 统计

haskell ×2

list ×2

dictionary ×1