小弟有几个Haskell问题想问大神第一个是如何将一个列表拆开就像这样:> :type splits splits ::[a] -> [([a],[a])]> splits [1..4] [([1],[2,3,4]),([1,2],[3,4]),([1,2,3],[4])]> splits "xyz" [("x","yz"),("xy","z")]> splits [True,Fa

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/04 02:46:32
小弟有几个Haskell问题想问大神第一个是如何将一个列表拆开就像这样:>:typesplitssplits::[a]->[([a],[a])]>splits[1..4][([1],[2,3,4]),

小弟有几个Haskell问题想问大神第一个是如何将一个列表拆开就像这样:> :type splits splits ::[a] -> [([a],[a])]> splits [1..4] [([1],[2,3,4]),([1,2],[3,4]),([1,2,3],[4])]> splits "xyz" [("x","yz"),("xy","z")]> splits [True,Fa
小弟有几个Haskell问题想问大神
第一个是如何将一个列表拆开就像这样:
> :type splits
splits ::[a] -> [([a],[a])]
> splits [1..4]
[([1],[2,3,4]),([1,2],[3,4]),([1,2,3],[4])]
> splits "xyz"
[("x","yz"),("xy","z")]
> splits [True,False]
[([True],[False])]
> length (splits [1..50])
49
第二个是如何找到列表中共有的东西,像这样:
> cpfx ["abc","ab","abcd"]
"ab"
> cpfx ["abc","abcef","a123"]
"a"
> cpfx ["xabc","xabcef","axbc"]
""
第三个是用input建立这样的图形:
> street [(3,2,'x'),(2,6,'y'),(5,4,'z')]
yy
yy
yyzzzzz
yyzzzzz
xxxyyzzzzz
xxxyyzzzzz
最后一个是输入指令进行相应的几种操作:
> editstr [("rep"," ","_")] "just a test" 这是替换
"just_a_test"
> editstr [("xlt","aeiou","AEIOU")] "just a test" 这个是将相应位置的替换,就是把aeiou替换成AEIOU
"jUst A tEst" aeiou和AEIOU都是由用户输入的
> editstr [("len","","")] "testing" 这个是求长度
"7"
> editstr [("rev","","")] "testing" 这个是反向
"gnitset"
> editstr [("x","3","")] "xy" 这个是重复
"xyxyxy"

小弟有几个Haskell问题想问大神第一个是如何将一个列表拆开就像这样:> :type splits splits ::[a] -> [([a],[a])]> splits [1..4] [([1],[2,3,4]),([1,2],[3,4]),([1,2,3],[4])]> splits "xyz" [("x","yz"),("xy","z")]> splits [True,Fa
第一道用了一个比较笨的办法,而且也没有管列表长度小于2的情况
```haskell
splits xs = sp ((length xs)-1) xs
sp 1 xs = [splitAt 1 xs]
sp n xs = (sp (n-1) xs) ++ [splitAt n xs]
```
第二道题copy自[stackoverflow](http://stackoverflow.com/a/21722065/2214113)
```haskell
commonPrefix :: (Eq e) => [e] -> [e] -> [e]
commonPrefix _ [] = []
commonPrefix [] _ = []
commonPrefix (x:xs) (y:ys)
| x == y = x : commonPrefix xs ys
| otherwise = []
cpfx :: (Eq a) => [[a]] -> [a]
cpfx = foldl1 commonPrefix
```
该睡了,后面两个改天有时间再说,我才不告诉你我不会.

小弟有几个Haskell问题想问大神第一个是如何将一个列表拆开就像这样:> :type splits splits ::[a] -> [([a],[a])]> splits [1..4] [([1],[2,3,4]),([1,2],[3,4]),([1,2,3],[4])]> splits xyz [(x,yz),(xy,z)]> splits [True,Fa 有化学大神吗,有问题想问 一道关于涂色问题的分布列经典数学题求解!这个网址有问题与答案,小弟不懂第三问的分布列是怎么求解出来的,求大神写出第三问的具体解答方法, haskell的问题,用函数 zip 来定义 zip4 中国第一阶梯的主要地形特征是什么?大哥!小弟有问题! haskell大神,求问一道Haskell的编程题!原题是英文,我怕我翻译不到位,还是把题目po上来:Define a function called 'SquareSum' that sums the squares of a list of integers.Give the type of the function and use an anonymous funct 求大神'第一问和第三问 求问生物大神关于连锁交换的问题,求解第一大题第二小题, 求大神看看这个电路几个意思,小弟谢过 编程 haskell 这道题的第一小问是不是有问题, 请问高手初三化学的几个小问题刚学化学,小弟有几个问题想问 1.既然氧气由氧分子构成而氧分子又由氧原子构成,那么为什么不能说氧气由氧原子构成的?2.由原子构成的气体有什么3.有没有由 排列组合问题 第一小问, haskell iomonad问题想要从控制台输入一个数字以下代码报错do{input 想问大家精灵鼠小弟的电影和精灵鼠小弟这本书有没有什么不同 问几个二元一次方程问题! 问您几个英语问题 问几个数学问题 、行吗