Haskell语言问题,请懂Haskell的高手帮帮忙!!![题目在补充说明]
答案:3 悬赏:0 手机版
解决时间 2021-11-29 01:04
- 提问者网友:愿为果
- 2021-11-28 12:08
Haskell语言问题,请懂Haskell的高手帮帮忙!!![题目在补充说明]
最佳答案
- 五星知识达人网友:怀裏藏嬌
- 2021-11-28 13:07
好吧,如果用最基本的(x:xs),我来回答好了:
因为是编程,我觉得你应该自己多想想,所以我不会把主程序都写给你,我只是给你一些提示,希望有帮助吧。
1、第一个,如果一个数组要变成两倍的话,也就是说[a,a,b,b,c,c],所以里面的基本元素应该都要重复一次,本来(x:xs)是不变的但如果x提取两次的话,那么就是递归两次了。
2、第二个,有两种方法,a、把第一个,第二个和第三个数组分别判断,如果是第二个的话,就删去,如果删去,又回到递归(x:xs),如果不提取x的话,应当是怎样的结果?
b、把第一组和第二组应用到(x:xs)递归,直接定义删去第二组,只递归第一组。。。。。。。。
就提示到这里了,加油吧!
因为是编程,我觉得你应该自己多想想,所以我不会把主程序都写给你,我只是给你一些提示,希望有帮助吧。
1、第一个,如果一个数组要变成两倍的话,也就是说[a,a,b,b,c,c],所以里面的基本元素应该都要重复一次,本来(x:xs)是不变的但如果x提取两次的话,那么就是递归两次了。
2、第二个,有两种方法,a、把第一个,第二个和第三个数组分别判断,如果是第二个的话,就删去,如果删去,又回到递归(x:xs),如果不提取x的话,应当是怎样的结果?
b、把第一组和第二组应用到(x:xs)递归,直接定义删去第二组,只递归第一组。。。。。。。。
就提示到这里了,加油吧!
全部回答
- 1楼网友:独行浪子会拥风
- 2021-11-28 15:10
lz这种学习方式态度不合理。
- 2楼网友:独钓一江月
- 2021-11-28 13:44
faint ,不好好上课的。
module Main where
fn1 :: (a,b,c) -> [(a,b,c)]
fn1 (a,b,c) = [(a,b,c), (a,b,c)]
fn2 :: [(a,b,c)] -> [(a,b,c)]
fn2 xs = [head xs, last xs]
main :: IO()
main = do
print $ fn1 (1,2,3)
print $ fn2 [(1,2,3), (4,5,6), (7,8,9)]
module Main where
fn1 :: (a,b,c) -> [(a,b,c)]
fn1 (a,b,c) = [(a,b,c), (a,b,c)]
fn2 :: [(a,b,c)] -> [(a,b,c)]
fn2 xs = [head xs, last xs]
main :: IO()
main = do
print $ fn1 (1,2,3)
print $ fn2 [(1,2,3), (4,5,6), (7,8,9)]
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯