我是Haskell的新手,我找到了一些练习的例子,但不知道如何处理它们.我需要分成"abcd"几个子序列.
至:
["",a,b,c,d,ab,ac,ad,bc,bd,cd,abc,abd,bcd,acd,abcd]
Run Code Online (Sandbox Code Playgroud)
我发现我必须使用子序列函数.
subsequences :: [a] -> [[a]]
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
您可以subsequences按照建议查看示例:
import Data.List
subsequences "abcd"
Run Code Online (Sandbox Code Playgroud)
输出:
["","a","b","ab","c","ac","bc","abc","d","ad","bd","abd","cd","acd","bcd","abcd"]
Run Code Online (Sandbox Code Playgroud)
注意: subsequences不对输出进行排序.但是,如果您想要排序的输出,您可以使用以下内容:
import Data.List
import Data.Function
sortBy (compare `on` length) $ subsequences "abcd"
Run Code Online (Sandbox Code Playgroud)
要么
import Data.List
import GHC.Exts
sortWith length $ subsequences "abcd"
Run Code Online (Sandbox Code Playgroud)
输出:
["","a","b","c","d","ab","ac","bc","ad","bd","cd","abc","abd","acd","bcd","abcd"]
Run Code Online (Sandbox Code Playgroud)
点击此处了解更多信息:
| 归档时间: |
|
| 查看次数: |
1011 次 |
| 最近记录: |